我正在编写一个shell脚本来生成记录计数报告。SQL组按表中的列,如何获得count = 0的组?
样品表&数据:MED_FILE_TEST_RECORD
================================================================================
R_ID SOURCE ELEMENT FILE_STATUS FILE_CREATE_TIME FILE_NAME
================================================================================
1001 Japan ELE01 Successful 30/05/2014 15:11:23 xxxxxx1.txt
1002 Japan ELE01 Corrupt 30/05/2014 15:11:23 xxxxxx2.txt
1003 Japan ELE02 Successful 30/05/2014 17:11:23 xxxxxx3.txt
1004 Japan ELE02 Successful 30/05/2014 17:11:23 xxxxxx4.txt
1005 Japan ELE01 Corrupt 31/05/2014 15:11:23 xxxxxx5.txt
================================================================================
我用下面的Oracle SQL生成报告。计数结果正确生成。
SELECT SOURCE, ELEMENT, FILE_STATUS, FILE_CREATE_TIME as DAY, COALESCE(COUNT(FILE_CREATE_TIME), 0) as FILE_COUNT
FROM MED_FILE_TEST_RECORD
WHERE
(SOURCE IN ('Japan')) AND
(ELEMENT IN ('ELE01', 'ELE02')) AND
(FILE_STATUS IN ('Corrupt', 'Successful')) AND
(FILE_CREATE_TIME BETWEEN to_date('2014-05-30 00:00:00','YYYY-MM-DD HH24:MI:SS') AND to_date('2014-06-01 23:59:59','YYYY-MM-DD HH24:MI:SS'))
GROUP BY SOURCE, ELEMENT, FILE_STATUS, FILE_CREATE_TIME
ORDER BY DAY, SOURCE, ELEMENT, FILE_STATUS desc;
结果与计数:
================================================================================
SOURCE ELEMENT FILE_STATUS FILE_CREATE_TIME FILE_COUNT
================================================================================
Japan ELE01 Successful 30/05/2014 1
Japan ELE01 Corrupt 30/05/2014 1
Japan ELE02 Successful 30/05/2014 2
Japan ELE01 Corrupt 31/05/2014 1
================================================================================
它能够产生与计数= 0包括象下面结果?因此,报告读者可以清楚地知道某个组在某个时间没有记录?谢谢!
================================================================================
SOURCE ELEMENT FILE_STATUS FILE_CREATE_TIME FILE_COUNT
================================================================================
Japan ELE01 Successful 30/05/2014 1
Japan ELE01 Corrupt 30/05/2014 1
Japan ELE02 Successful 30/05/2014 2
Japan ELE02 Corrupt 30/05/2014 0
Japan ELE01 Successful 31/05/2014 0
Japan ELE01 Corrupt 31/05/2014 1
Japan ELE02 Successful 31/05/2014 0
Japan ELE02 Corrupt 31/05/2014 0
Japan ELE01 Successful 01/06/2014 0
Japan ELE01 Corrupt 01/06/2014 0
Japan ELE02 Successful 01/06/2014 0
Japan ELE02 Corrupt 01/06/2014 0
你有没有试过使用Having clause? –