我目前正在計算一個更大的一組數據與一些聯接和最終的結果是跨兩個表的計算。我的當前腳本如下所示:複雜的計算 - SQL Server
USE db1
Go
SELECT
customer, tb1.custid
FROM
[dbo].[tb1]
LEFT OUTER JOIN
[dbo].[tb2] ON tb1.custid = tb2.custid
LEFT OUTER JOIN
[dbo].[tb3] ON tb2.custnumber = tb3.custnumber
LEFT OUTER JOIN
[dbo].[tb4] ON tb2.custid = tb4.custid
WHERE
tb1.custclass = 'non-person'
AND tb4.zip IN ('11111', '11112')
GO
正如您所看到的,它不是最乾淨的,但它用於收集初始信息。連接數量的原因是由於我沒有創建一個令人難以置信的奇怪表格結構,而且我需要的數字數據只存儲在tb3中。
我現在要做的是計算tb3中所有設置爲數字字段的3個字段的總和,並對第4個字段(也是數字)進行AND/OR比較。我知道我可以將它們彙總在一起,但我希望在三件事情上進行一些輸入:
- 何處將SUM計算置於查詢中?
- 在哪裏放置以及如何將SUM總數與第4場進行比較?
- 是否有可能將兩個值中較高的值返回到初始SELECT中的TOTAL列?
在此先感謝您。
一次做一件事。從一個簡單的總和開始。你在哪裏可以放置哪些選項? –
將數據分散在多個表中並不罕見。但在加入多個表格時請小心謹慎:如果您在t4中有三條匹配的記錄,則可以將t3數據重複三次。另外:你確定你需要外部連接嗎?最後一個甚至不起作用,因爲您比較WHERE子句中的t4值,而不考慮在外連接記錄的情況下該值爲空。如果您確實需要外連接,則可能需要將該條件移至ON子句。 –