2016-04-03 69 views
0

当用户输入值的日期范围时,什么是SQL查询以显示当年的所有月份名称 ?如果月份不包含任何值,结果应该在标题中显示所有的月份名称。如何在Oracle报告中显示所有月份名称?

SELECT CU.CUST_CODE, ITS.ITEMS_CODE, ITS.ITEMS_NAME, TO_CHAR(TM.JOB_DATE,'MON-YY')MON, TO_CHAR(TM.JOB_DATE,'MM-YY')MM, SUM(TD.QUANTITY)QUANTITY, SUM(TD.PRICE)UNIT 
FROM CUSTOMERS CU, ITEMS ITS, TRANS_MASTER TM, TRANS_DETAIL TD 
WHERE CU.CUST_CODE=TM.CUST_CODE 
AND ITS.ITEMS_CODE = TD.ITEM_CODE 
AND TM.INVOICE_NO = TD.INVOICE_NO 
GROUP BY CU.CUST_CODE,ITS.ITEMS_CODE,ITS.ITEMS_NAME,TO_CHAR(TM.JOB_DATE,'MON-YY'),TO_CHAR(TM.JOB_DATE,'MM-YY') 
ORDER BY MM ASC 
+0

如何显示月份为一月,二月....从给定的范围以上查询 –

回答

0

您可以使用尝试使用

to_char(TM.JOB_DATE, 'MON')获得月如 'JAN', 'FEB' ..

+0

耶,很好,谢谢。 –

+0

但在上面的查询中,我已经添加了这个字符......但是我究竟需要什么是当用户输入一个月的数据应该显示的特定日期以及所有其他月份时,如果该月份还应该显示NULL值不包含任何数据或值。但应该显示所有12个月! –

+0

你可以试试这个NVL(to_char(TM.JOB_DATE,'MON'),'不适用') –