[英]Display data for current month
我想顯示當月雇員表中的雇員日薪詳細信息。
例如:月份將顯示為“當前日期-1”。 (如果當前日期為2014年6月18日,則顯示月份數據為2014年6月1日至2014年6月17日。類似地,如果當前日期為2014年6月1日,則顯示月份數據從2014年5月1日到2014年5月31日)
請幫助我如何編寫上述要求的查詢。
提前致謝
我想你應該有這樣的東西:
表雇員:
| EMP_ID | NAME | ...
表EMPLOYEE_DETAIL:
| WAGE_DATE | EMP_ID | AMOUNT | ...
所以這應該像:
select D.EMP_ID, E.NAME, trunc(D.WAGE_DATE), sum(AMOUNT) WAGE_AMOUNT
from EMPLOYEE_DETAIL D
inner join EMPLOYEE E on (E.EMP_ID = D.EMP_ID)
where trunc(D.WAGE_DATE, 'MON') = trunc(sysdate, 'MON') -- Only on current month
group by D.EMP_ID, E.NAME, trunc(D.WAGE_DATE)
編輯:如果您需要上個月的數據,則可以執行以下操作:
where trunc(D.WAGE_DATE, 'MON') = trunc(add_months(sysdate, -1), 'MON')
代替。 如果您只想在當月的第一天獲得前一個月的數據,則可以執行以下操作:
where trunc(D.WAGE_DATE, 'MON') = case when trunc(sysdate) = trunc(sysdate, 'MON')
then trunc(add_months(sysdate, -1), 'MON')
else trunc(sysdate, 'MON')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.