[英]Multiple Joins in a SQL Query
在表A和B之间,表B和C之间存在一对多的关系。我需要列出表B中的所有记录,以及它们在表A中的父记录,以及表中特定字段的sum() C.我该怎么做?
我认为是这样的:
SELECT A.fldlist,
B.fldlist,
SUM(C.field)
FROM A
INNER JOIN B ON A.key = b.FK
LEFT OUTER JOIN C on B.key = C.FK
GROUP BY B.field
有任何想法吗? 非常感激...
关闭,但您需要按SELECT中的所有非聚合列进行分组。
SELECT A.fldlist,
B.fldlist,
SUM(C.field)
FROM A
INNER JOIN B ON A.key = b.FK
LEFT OUTER JOIN C on B.key = C.FK
GROUP BY A.fldlist, B.fldlist
如果要按A和B中的所有字段分组,则始终可以执行此操作
With tmp as
(
SELECT c.FK, SUM(C.field) as field
FROM C
GROUP BY c.FK
)
SELECT A.*, B.*, tmp.FK, tmp.field
FROM A
INNER JOIN B ON A.key = b.FK
LEFT OUTER JOIN tmp ON b.key = tmp.FK
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.