我似乎在這裏捏了一下......我現在正在做的是在一個select語句查詢中進行計算。問題是...某些ID在另一個表中找不到,但是它們可以在我聲明的表中找到,它是gndtndr。在另一張桌子上找不到的ID是gndsale。我想要做的是,當在gndsale ...上找不到ID時,我只會將其聲明爲0或0.00的值,並將其作爲列名稱DECLARED。如果在表中找不到數據字段,則返回值0或0.00 - MySql
我試過這個查詢我心裏在想什麼,但它不工作:c 你能幫我解決嗎?
所顯示的錯誤是:子查詢返回多個1行
這裏是我的查詢:
SELECT g.ID , concat(emp.FIRSTNAME, ' ', emp.LASTNAME) Fullname,
(CASE
when (select DISTINCT ID from gndtndr where ID NOT IN (select
ID from gndsale)) then '0'
else
FORMAT(ROUND(SUM(s.AMOUNT), 2),0)
END) as DECLARED,
FORMAT(ROUND(SUM(G.amount), 2),0) as CALCULATED,
FORMAT(ROUND(SUM(G.amount), 2) - ROUND(SUM(S.AMOUNT),2),0) AS `CASH SHORT`
FROM gndtndr g JOIN emp ON emp.ID = g.ID JOIN gndsale s on
g.ID=S.ID JOIN adjtime a on a.ID = g.ID group by
ID
下面是一個簡單的數據和我預期的結果
GNDSALE表
GNDTNDR表
預期結果
提供樣品數據和預期產量 – Utsav