我需要在同一张表的同一列中比较2017年和2016年之间的数据。
现在我使用2个查询:
第一次查询:
intent:#Intent;action=com.squareup.register.action.CHARGE;package=com.squareup;S.com.squareup.register.WEB_CALLBACK_URI=...;end
这是寻找netamt 2017
第二次查询:
SELECT
SUM(a.netamt) AS netamt2017, b.store_name, c.budget
FROM
site_sales a
JOIN
site_store b ON b.storenum = a.storenum
JOIN
site_kpimthslsbgt c ON b.storenum = c.storenum
WHERE
c.busidate = '2017-01'
AND a.busidate >= '2017-01-01'
AND a.busidate <= '2017-01-15'
GROUP BY
a.storenum
这是为了寻找“Netamt 2016”。
我需要将这两个查询组合起来形成这个表:
答案 0 :(得分:0)
只需使用sum(case when ... then ... else ... end)
语法:
SELECT
SUM(CASE WHEN a.busidate BETWEEN '2016-01-01' AND '2016-01-15' THEN a.netamt ELSE 0 END) as netamt2016,
SUM(CASE WHEN a.busidate BETWEEN '2017-01-01' AND '2017-01-15' THEN a.netamt ELSE 0 END) as netamt2017,
b.store_name,
c.budget
FROM site_sales a JOIN site_store b ON b.storenum = a.storenum
JOIN site_kpimthslsbgt c ON b.storenum = c.storenum
WHERE c.busidate = '2017-01'
GROUP BY a.storenum
注意: 因为您使用了GROUP BY
,b.store_name
,c.budget
没有汇总,所以这两列是毫无意义。