0
我有这样的SQL查询总结多表父子关系的公共列在SQL Server
SELECT dbo.a.Agency, SUM(COALESCE (dbo.b.total, 0)) + SUM(COALESCE (dbo.c.total, 0))
+ SUM(COALESCE (dbo.d.total, 0)) AS Expr1,
dbo.b.date as date,
dbo.c.Date AS Expr2,
dbo.d.Date AS Expr3
FROM dbo.c RIGHT OUTER JOIN
dbo.a ON dbo.d.Agency = dbo.a.Agency LEFT OUTER JOIN
dbo.c ON dbo.a.Agency = dbo.c.Agency LEFT OUTER JOIN
dbo.b ON dbo.a.Agency = dbo.b.Agency
GROUP BY dbo.a.Agency, dbo.b.Date, dbo.c.Date, dbo.d.Date
我想实现的是组在同一时间3个日期字段。所以结果看起来像这样
+------+-------+----+
|Agency|expr1 |Date|
+------+-------+----+
|abc |500000 |18 |
+------+-------+----+
|def |6000000|18 |
+------+-------+----+
|abc |550000 |19 |
+------+-------+----+
|def |750000 |19 |
+------+-------+----+
日期只是包含int值,如示例演示。他们被链接到另一个可以使用的表格,如果这更容易。
当前的代码只显示每行的每个日期值的1行。如果我使用的过滤器使用AND
或OR
它显示不正确的结果