我对简单的事情有一个复杂的查询,但我设法使它工作。查询在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