假设我有一些示例数据,table_name_a
如下所示:
code val remark date
-----------------------------------
1 00001 500 111 20191107
2 00001 1000 222 20191107
3 00002 200 111 20191108
4 00002 400 222 20191108
当我输入代码'00001'和日期'20191107'时,我需要以下输出:
code val
-------------
1 00001 0.5
此SQL查询一定是错误的查询,因为我得到的错误结果如下:
code val
--------------
0 00001 Null
1 00001 Null
2 00001 Null
3 00001 Null
4 00002 Null
5 00002 Null
6 00003 Null
7 00004 Null
8 00005 Null
SELECT
code, val
FROM
(SELECT
code, date,
CASE WHEN t.remark = '111' THEN t.value ELSE 0 END /
CASE WHEN t.remark = '222' THEN t.value ELSE 0 END AS val
FROM
table_name_a t
WHERE
code IN ('%(code)s')
AND date IN ('%(input_date) s')) AS t1
非常感谢您的任何建议。
尝试如下
select code,
sum(case when remark=111 then val else 0 end)/sum(case when remark=222 then val else 0 end) as val
from table where code= '00001' and date= '20191107'
group by code
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句