2
因此,我必須在DB2中編寫一個SQL,並且我無法弄清楚如何執行該操作。 喜歡的東西挑這些域代碼和它們的值從財務表 只要他們是高於$ 10,000個從同一個表中選擇多個(帶空值)
Select
(A.Value),
(B.Value),
(C.Value)
...
From
Client K,
Finance A,
Finance B,
Finance C
...
的問題是在哪裏聲明。我不能忍受:
Where
K.Client = A.Client
AND A.FieldCode = 1
AND A.Value > 10000
AND K.Client = B.Client
AND B.FieldCode = 2
AND B.Value > 10000
...
等等......因爲這並不包括空值,所以它大大降低了結果集,更多的時候,我叫財務表。
如何保持上述格式並使其包含空值,以便只要財務A或財務B或財務C等存在就會顯示該行? (注意:做第一個最明顯的事情就像重複調用財務表一次,比如說財務A,但沒有B,C,D等不能解決這個問題,因爲結果(來自A,B,C, D等)不能在許多行上分開)。
這是我做的一個壓縮版本:
SELECT
A.CLIENT_ID,
A.PERIOD_ID,
FN0.AMOUNT,
FN2.AMOUNT
FROM ASSESMENT A
LEFT OUTER JOIN FINANCE FN0
ON A.CLIENT_ID = FN0.CLIENT_ID
AND A.PERIOD_ID = FN0.PERIOD_ID
LEFT OUTER JOIN FINANCE FN1
ON A.CLIENT_ID = FN1.CLIENT_ID
AND A.PERIOD_ID = FN1.PERIOD_ID
WHERE
FN0.FLD_CD = 1258860
AND FN1.FLD_CD = 1258861
林仍然是,如果我空出的FN1相關的線,我得到了很多的返回值的問題。 AKA它仍然不包含NULL值,並且只有在所有字段代碼都有值時才返回值。
感謝您的回覆。我不知道它的工作原理。但首先:我不能添加行AND A.FieldCode = 1到from語句,它說無效的ON語句。任何想法爲什麼?目前,我把A.FieldCode行放在了它的工作地點......但是我想這可以避免練習的全部重點? – Ardia
@Ardia *我無法添加行AND A.FieldCode = 1 *顯示您添加的完整代碼AND AND.FieldCode = 1' –
更新了主要問題中的代碼。仍然沒有擺脫空? – Ardia