我想知道如何在表中添加子查詢的結果。例如,我想在一個語句中添加以下兩個查詢。與主查詢相加的子查詢
SELECT SUM(A) - (SELECT SUM(B) FROM MyTable WHERE C<A))
FROM MyTable WHERE B>C;
SELECT SUM(B) - (SELECT SUM(C) FROM MyTable WHERE D<F))
FROM MyTable WHERE B=C;
我想知道如何在表中添加子查詢的結果。例如,我想在一個語句中添加以下兩個查詢。與主查詢相加的子查詢
SELECT SUM(A) - (SELECT SUM(B) FROM MyTable WHERE C<A))
FROM MyTable WHERE B>C;
SELECT SUM(B) - (SELECT SUM(C) FROM MyTable WHERE D<F))
FROM MyTable WHERE B=C;
你可以從字面上只是把它們相加:
SELECT (SELECT SUM(A) - (SELECT SUM(B) FROM MyTable WHERE C<A))
FROM MyTable WHERE B>C)
+
(SELECT SUM(B) - (SELECT SUM(C) FROM MyTable WHERE D<F))
FROM MyTable WHERE B=C)
同:
SELECT 5 + 3
你也很可能使用一些CASE語句來做到這一點沒有子查詢,或使它至少更乾淨,如:
SELECT SUM(CASE WHEN B > C THEN A ELSE 0 END) - SUM(CASE WHEN C < A THEN B ELSE 0 END)
+
SUM(CASE WHEN B = C THEN B ELSE 0 END) - SUM(CASE WHEN D < F THEN C ELSE 0 END)
FROM MyTable
太棒了!簡單而有幫助 –
@Goat_CO。 。 。您從我的評論開始就修復了查詢。我的觀點是針對OP,接受一個不正確的答案,而不是你的回答。如果以前的版本是正確的,他/他應該解釋原因。 –
嗯,我認爲唯一的編輯是措辭和添加CASE聲明部分。兩種方式都沒有問題。 –
您能否提供真實的列名或某種假模式,以幫助我們理解爲什麼要這樣做?有時,與類似模型相關時,想出答案會更容易。爲什麼做這些奇怪的列比較和求和/減法是有意義的? – ErikE