1
我有以下表结构:帮助在MySQL查询
Customers - Cust_Orders - Cust_Items - Cust_Payments - Drivers
id id id id id
company cid oid oid name
driver price amount
date qty date
vat
我想要做的是显示一个特定的驱动程序ID +所有未付订单,为除特定客户的总和标志着最后未支付的订单是什么已经选择的订单。
由于可能有不止一个cust_items &多个cust_payments我不得不使用从选择否则我会错的款项,直到我达到了一个点,我忘了我在做&事情变得混乱。
任何帮助将不胜感激。
我现在的SQL缺乏的最后一部分只(其它未支付的账单金额总和):
SELECT `customers`.`company`,
T1.*,
ROUND(IFNULL(SUM(`cust_payments`.`amount`), 0), 2) AS `paid`
FROM (
SELECT `cust_orders`.*,
ROUND(IFNULL(SUM(`cust_items`.`qty` * `cust_items`.`price`), 0), 2) AS `total`,
SUM((`cust_items`.`price` * `cust_items`.`qty` * `vat`)/100) AS `vat`
FROM `cust_orders`
LEFT JOIN `cust_items` ON `cust_orders`.`id` = `cust_items`.`oid`
GROUP BY `cust_orders`.`id`
) `T1`
LEFT JOIN `customers` ON `T1`.`cid` = `customers`.`id`
LEFT JOIN `cust_payments` ON `T1`.`id` = `cust_payments`.`oid`
WHERE `T1`.`driver` = ? GROUP BY `T1`.`id` HAVING (`T1`.`total` - `paid`) > ?
ORDER BY `T1`.`id` DESC LIMIT 1
这看起来比我的例子更清晰,但它并不完全是什么我期望。如我应该结束了**一个未付顺序**每个客户+其他未结算订货该客户的总和(除所显示的顺序)。我会尽量根据您的例子我的工作来重建和明天早上发布了回去。 – Frank
简单的我忘了,包括客户'id'? – rabudde