2014-02-27 25 views
3

這裏是我的代碼如何從第一次約會以來獲取ORACLE的當前月份記錄。

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 
  • 在我的應用程序僅僅只發送SYSDATE作爲參數。 不需要SYSDATE-30。 需要1日期SYSDATE

這裏顯示了我的兩個表 sales_header表 enter image description here

sales_details表 enter image description here

回答

6

試試這個:

WHERE entered_by='2254' 
AND ENTERED_DATE BETWEEN trunc (sysdate, 'mm')/*current month*/ AND SYSDATE 
+0

感謝親愛i100.u救了我的時間:-) –

+0

很樂意這樣做;-) – i100

1

嘗試:

SELECT TRUNC(SYSDATE, 'month') FROM DUAL; 
+0

謝謝親愛CloudyMarble.its幫助:-) –

5

在條件比較幾個月

WHERE to_char(sysdate, 'mm') = to_char(ENTERED_DATE, 'mm')

而且

WHERE EXTRACT(month FROM sysdate)=EXTRACT(month FROM ENTERED_DATE)

+0

感謝親愛mhasan烏爾解決方案的工作:-) –

+0

歡迎親愛的,很高興我能幫助 –

2

Mudassir的回答爲我工作,但我也檢查一年進行確定你沒有得到去年的記錄。

WHERE TO_CHAR(ENTERED_DATE, 'mm') = TO_CHAR(SYSDATE, 'mm') 
    AND TO_CHAR(ENTERED_DATE, 'yyyy') = TO_CHAR(SYSDATE, 'yyyy') 

此外,如果你正在運行一個大的查詢,在您的WHERE條款功能可以慢下來。如果是這樣,你可能需要考慮一個基於函數的索引。

相關問題