我對簡單的事情有一個複雜的查詢,但我設法使它工作。查詢在idclient爲1時有效,但在idclient爲5時有問題。sql內部連接空白表
問題是客戶沒有訂購任何東西,他只是支付了一些金額。所以沒有價格,實際上整個表格都是空白的,而我想要的結果是-1200,00或者減去付款金額。我的問題是表的第一部分不存在,所以內連接是不可能的,而第二部分也不存在。任何建議「快速修復」? :)
SELECT SUM(a.price) - s.pay AS Remain
FROM (SELECT name,
(quantity * itprice) * (100 - percent)/100 AS price,
idclient
FROM (SELECT order.iditem AS ID,
item.name,
SUM(order.quant) AS quantity,
order.percent,
item.itprice,
order.idclient
FROM item
inner join order
ON order.iditem = item.id
WHERE (order.idclient = 1)
GROUP BY order.iditem,
order.percent,
item.name,
item.itprice,
order.idclient) AS X) AS a
inner join (SELECT SUM(amount) AS Pay,
idcom
FROM payed
WHERE (idcom = 1)
GROUP BY idcom) AS s
ON a.idclient = s.idcom
GROUP BY s.idcom,
a.idclient,
s.pay
(有可能在代碼中的一些打字錯誤,但不要打擾,因爲我已經翻譯了我的原代碼,所以也許有些字母迷失東京。代碼是正確的)
請編輯你的問題與樣本數據和所需的結果。可能有更簡單的方法來表達你想要做的事情。 SQL小提琴也是一個好主意。 –
例如:某人訂購了15個蘋果(有價格和折扣等),並且a.price爲最終價格做數學計算。同樣的人支付100,比200,500,和s.pay總和。這兩者之間的區別就是我想要展示的東西。問題在於有人不訂購任何東西,但只需支付一定金額。那麼他的桌子就不存在了。而且我的最終結果是一張空白表格。我想成爲 - 支付現金的數額。 – user2710931