簡體   English   中英

SQL - 復雜的 SQL 查詢

[英]SQL - Complicated SQL query

我有兩張桌子; 第一個是order與列doc_num, doc_type, doc_tttc ,而第二個是order details的列doc_num, doc_origi, art_code, art_des, qte, price -見下圖:

截屏

說明:DAC 類型的訂單是客戶接受的訂單,DAA 類型的訂單是主管接受的訂單在某些情況下是相同的訂單,但主管可以為此更改數量“QTE”或項目“ART_CODE”我想顯示結果:

DAC-19001    DAA-19001  1200    1500

 ART3         ART3        1      300

歡迎來到 S/O。 不確定您的意圖/需求究竟是什么,但也許這會有所幫助。 由於您的訂單表已經匯總了詳細信息總計,因此您可能需要根據原始文檔編號與主管訂單的匹配情況來加入。

不知道為什么“ART3”值來自細節......沒有依據為什么該字段上的一個記錄與另一個記錄。

但是,這就是我所擁有的。 來自訂單表的主要查詢獲取訂單。 沒問題。 然后,LEFT-JOIN 表示查看是否有基於連接條件匹配的記錄。 在這個內部“od”結果別名查詢中,我得到了不同的原始文檔訂單和相應的主管訂單,僅用於 ID 參考。 然后,如果找到,則重新加入訂單表以通過該文檔編號獲取 ITS 總金額。 我也可以匯總細節並跳過最后一個左連接。 這也可以獲得最后的 ART 代碼,但由於沒有 ID、記錄 ID、“最后一條記錄”的基礎,我現在只留下那部分。

select
      o.Doc_Num,
      o.Doc_Type,
      o2.Doc_Num as Supervisor_Doc_Num,
      o.Doc_TTC as OriginalOrderTotal,
      o2.Doc_TTC as SupervisorOrderTotal,
      o2.Doc_TTC - o.Doc_TTC as OrderDifference
   from
      Order o
         LEFT JOIN 
         ( select distinct 
                 Doc_OrigI,
                 Doc_Num
              from 
                 Order_Details ) od
            on o.Doc_Num = od.Doc_OrigI
            LEFT JOIN Order o2
               on od.Doc_Num = o2.Doc_Num

暫無
暫無

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

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