簡體   English   中英

Oracle Sql,如何將日值分組為一個月摘要

[英]Oracle Sql, How do I group day values into a months summary

想知道是否有人可以提供幫助。

我正在嘗試獲取日期列中的值、日期值並將天分組為一個月,以獲取當月收到的托盤總數的摘要。

將 to_char(conf_date, 'MM-YYYY') 添加到我的 select/group 語句時出現錯誤,'ORA-01722: invalid number'。

提前致謝!

我的當前 SQL

with pallets_received as (
select a.comp_code, 
       a.cust_code, 
       a.rcpt_num, 
       to_char(a.rcpt_conf_date,'mm-dd-yyyy')conf_date,
       sum(b.rcpt_loc_qty)/(c.item_qty_bkd_qty) pallets
from e_rcpt_h a
left join e_rcpt_d5D1 b
       on a.comp_code=b.comp_code 
       and a.rcpt_num=b.rcpt_num
left join m_item_d1 c
       on b.comp_code=c.comp_code 
       and b.cust_code=c.cust_code 
       and b.invt_lev1=c.item_code
where a.comp_code='T3'
       and c.item_qty_bkd_lev_num=1
       and a.cust_code='101029'
       and a.flow_pros_code='CORE'
       and trunc(a.rcpt_conf_date) >= to_date('02-01-2020','mm-dd-yyyy')
group by a.comp_code, 
         a.cust_code, 
         a.rcpt_num, 
         a.rcpt_conf_date, 
         c.item_qty_bkd_qty
order by conf_date
)
select comp_code, 
       cust_code, 
       conf_dateas month, 
       sum(ceil(pallets)) pallets
from pallets_received
group by comp_code, 
         cust_code, 
         conf_date
order by conf_date

桌子

comp_code | cust_code | conf_date  | pallets
---------------------------------------------
T3          101029      03-06-2020   2
T3          101029      03-09-2020   8
C4          101029      04-05-2020   2
C4          101029      04-05-2020   8

Output 我正在努力實現

comp_code | cust_code | month   | pallets
---------------------------------------------
T3          101029      03-2020   10
C4          101029      04-2020   10

CONF_DATE 只是 'to_char(a.rcpt_conf_date,'mm-dd-yyyy')' 的字符串結果的別名,因此 CONF_DATE 實際上只是一個字符串。 然而,在您的 GROUP BY 中,您將其提供給 TO_CHAR。 這會強制 oracle 首先使用 NLS_DATE_FORMAT 的控制值執行隱含的 TO_DATE。 這幾乎可以保證返回錯誤。

group by comp_code, 
         cust_code, 
         trunc(rcpt_conf_date,'MON')

(是的,你需要學習格式化你的代碼......為了你自己以及其他必須閱讀它的人的理智。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM