我必须使用不同的标准从表格中获取总数,我喜欢这样:
SELECT DISTINCT
SUM(CASE WHEN MYCONDITION1 THEN 1 ELSE 0 END) AS TOTAL1,
SUM(CASE WHEN MYCONDITION2 THEN 1 ELSE 0 END) AS TOTAL2
FROM TABLE1, TABLE2
WHERE COMMON_CONDITION1 AND COMMON_CONDITION2
AND BETWEEN DATE1 AND DATE2;
这很好用,我得到了预期的结果。
现在,我必须在过去12个月内每周重复一次,不包括假期。因此,我生成了一组将在查询中使用的日期范围。所以,我为所有日期范围重复上面的sql语句,这是一个漫长的过程。
我必须每周获得总数。例如,2010年9月26日至2010年10月2日,2010年9月19日至2010年9月25日,2010年9月12日至2010年9月18日等。我应该如何将这些范围放入查询分组和选择列表,因为我没有在表格中。
如何在一次拍摄中完成该操作并获取每个日期范围的所有总计。请帮我用sql。
谢谢。
答案 0 :(得分:1)
您可以创建包含日期范围的表格。你可以加入新桌子;你必须用group by替换distinct。例如:
SELECT TABLE3.DATE1
, TABLE3.DATE2
, SUM(CASE WHEN MYCONDITION1 THEN 1 ELSE 0 END) AS TOTAL1
, SUM(CASE WHEN MYCONDITION2 THEN 1 ELSE 0 END) AS TOTAL2
FROM TABLE1, TABLE2, TABLE3
WHERE COMMON_CONDITION1
AND COMMON_CONDITION2
AND DATE_COLUMN BETWEEN TABLE3.DATE1 AND TABLE3.DATE2
GROUP BY
TABLE3.DATE1
, TABLE3.DATE2