我有兩個表,根據TABLE1 中欄位的總和,我必須從 TABLE2 回傳不同的資料集:
我試圖通過 Case 陳述句來實作這一點,但收到一條錯誤訊息,指出subselect 必須只有一個欄位。
有一個更好的方法嗎?只是當 table1 中的列的總和為 0 時不要從 table2 中選擇任何內容
表格1:

表2:

我的 SQL:
SELECT
CASE
WHEN SUM(transaction_unit_failed) > 0
THEN (
SELECT sale_event_nr, business_unit, transaction_nr, transaction_unit_failed_number
FROM TABLE2
)
WHEN SUM(transaction_unit_failed) = 0
THEN (
SELECT sale_event_nr, business_unit, transaction_nr, transaction_unit_failed_number
FROM TABLE2
WHERE 1 = 2
)
FROM TABLE1
uj5u.com熱心網友回復:
select * from table2
where exists (
select 1
from table1
having sum(transaction_unit_failed) > 0
);
相似地:
select * from table2
where (
select sum(transaction_unit_failed)
from table1
) > 0;
https://dbfiddle.uk/?rdbms=sqlserver_2014&fiddle=3f68d250bc9a3235767b86626092799e
如果有令人信服的理由,您當然可以將其寫為連接。它會消除很好地使用*僅回傳一個表中的列的便利性。
select *
from table2 inner join (
select sum(transaction_unit_failed) as stuf
from table1
) on stuf > 0;
uj5u.com熱心網友回復:
SELECT sale_event_nr, business_unit, transaction_nr, transaction_unit_failed_number
FROM TABLE2
WHERE (SELECT SUM(transaction_unit_failed) > 0
FROM TABLE1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397699.html
上一篇:為什么SQLSELECT陳述句不會在JavaSpring啟動專案中回傳COUNT()結果?
下一篇:如何按日期運行多個分組的累計總數
