我试图在左连接sql查询中使用group by子句,但它无法正常工作。 请提前帮助我。
SELECT Cust_Mst_Det.Cust_Hd_Code,
Cust_Mst_Det.First_Name,
SL_HEAD20152016.vouch_date AS invoice_2,
SL_HEAD20142015.vouch_date AS invoice_1,
Cust_Mst_Hd.EMail
FROM Cust_Mst_Det
LEFT JOIN SL_HEAD20142015 ON Cust_Mst_Det.Cust_Hd_Code=SL_HEAD20142015.Member_Code
LEFT JOIN SL_HEAD20152016 ON Cust_Mst_Det.Cust_Hd_Code=SL_HEAD20152016.Member_Code
LEFT JOIN Cust_Mst_Hd ON Cust_Mst_Det.Cust_Hd_Code=Cust_Mst_Hd.Cust_Hd_Code
WHERE cust_mst_det.first_name!='NIL'
GROUP BY Cust_Mst_Det.Cust_Hd_Code
ORDER BY SL_HEAD20152016.vouch_date DESC,
SL_HEAD20142015.vouch_date
答案 0 :(得分:0)
似乎无法在GROUP BY汇总中使用ORDER BY。我的基本逻辑是有缺陷的。我需要运行以下子查询。
前:
SELECT p.*, pp.price
FROM products p
LEFT JOIN ( SELECT price FROM product_price ORDER BY date_updated DESC ) pp
ON p.product_id = pp.product_id GROUP BY p.product_id;
这会影响性能,但因为每行都有相同的子查询,所以它不应该太糟糕。
答案 1 :(得分:0)
我不确定您使用的是哪个DBMS,但在Oracle上,您的查询根本不起作用。
正如我所说,我不知道你使用的是哪个数据库,但这两点应该适用于大多数SQL标准。