簡體   English   中英

SQL Server查詢來自多個表的總和

[英]SQL Server query with sums from multiple tables

我嘗試從中報告3個表,這些表都相關,但記錄數不同。 我想要每個訂單的摘要行,以顯示工作說明,總價和總成本。

我的表格如下:

價格

| Order | Line # | Description  | Price |
+-------+--------+--------------+-------+
| 1     | 1      | Line 1 job#1 | 100   |
| 1     | 2      | Line 2 job#1 | 30    |
| 2     | 1      | Line 1 job#2 | 100   |
| 3     | 1      | Line 1 job#3 | 75    |

成本線

| Order | Line # | Cost record | Cost |
+-------+--------+-------------+------+
| 1     | 1      | 1           | 80   |
| 1     | 2      | 2           | 80   |
| 1     | 2      | 3           | 50   |
| 2     | 1      | 1           | 75   |
| 3     | 1      | 1           | 50   |
| 3     | 1      | 2           | 50   |

訂單標題

| Order | Description | Sales Person |
+-------+-------------+--------------+
| 1     | Order # 1   | 1            |
| 1     | Order #2    | 2            |
| 1     | Order #3    | 1            |

我一直在尋找許多相關的行。 我一直在嘗試使用求和的子查詢,但是我無法使其正常工作。

預期結果:

 | Order | Description | Price | Cost | Sales Person |
 +-------+-------------+-------+------+--------------+
 | 1     | Order #1    | 130   | 210  | 1            | 
 | 2     | Order #2    | 100   | 75   | 2            |
 | 3     | Order #3    | 75    | 100  | 1            | 

我假設有一個錯誤在您的樣本數據和第一列應為123 ,而不是三次1 至少您想要的結果使這看起來很合理。

加入成本和價格的訂單,然后GROUP BY訂單和計算總和的成本和價格。

 SELECT o.[Order],
        o.[Description],
        sum(p.[Price]) [Price],
        sum(c.[Cost]) [Cost],
        o.[Sales Person]
        FROM [Order Header] o
             LEFT JOIN [Cost lines] c
                       ON c.[Order] = o.[Order]
             LEFT JOIN [Prices] p
                       ON p.[Order] = o.[Order]
        GROUP BY o.[Order],
                 o.[Description],
                 o.[Sales Person];

暫無
暫無

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

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