这是我的代码
SELECT h.ENTERED_DATE,
d.DENOMINATION,
sum(h.invoice_total-h.TOTTAL_DISCOUNT)as amount
FROM sales_details d
LEFT JOIN sales_header h
ON d.invoice_id=h.invoice_id
WHERE entered_by='2254'
--HERE IS NEED TO GET DETAILS CURRENT MONTH 1st Date to Sysdate
GROUP BY
ENTERED_DATE,
d.DENOMINATION
ORDER BY
entered_date,
denomination
Run Code Online (Sandbox Code Playgroud)
这里显示了我的两个表
sales_header表
sales_details表
试试这个:
WHERE entered_by='2254'
AND ENTERED_DATE BETWEEN trunc (sysdate, 'mm')/*current month*/ AND SYSDATE
Run Code Online (Sandbox Code Playgroud)
Mudassir 的答案对我有用,但我也会检查年份,以确保您没有得到去年的记录。
WHERE TO_CHAR(ENTERED_DATE, 'mm') = TO_CHAR(SYSDATE, 'mm')
AND TO_CHAR(ENTERED_DATE, 'yyyy') = TO_CHAR(SYSDATE, 'yyyy')
Run Code Online (Sandbox Code Playgroud)
此外,如果您正在运行大型查询,WHERE
子句中的函数可能会减慢查询速度。如果是这样,您可能需要考虑基于函数的索引。
比较几个月的情况
WHERE to_char( sysdate, 'mm' ) = to_char( ENTERED_DATE, 'mm' )
也
WHERE EXTRACT(month FROM sysdate)=EXTRACT(month FROM ENTERED_DATE)