【发布时间】:2014-08-31 16:00:57
【问题描述】:
我很困惑编写这个查询来总结一些表字段的值。结果总结错误。对容易理解简化设计。 表格和字段如下:
Table [City] => {ID, CityName}
Table [A] => {ID, CityID, Date, Value}
Table [B_1] => {ID, AID, Value}
Table [B_2] => {ID, AID, Value}
如您所见,[city] 的表是 [A] 的父表,而 [A] 是 [B_1] 和 [B_2] 的父表
这是查询:
SELECT City.CityName, A.Date, SUM(A.Value), SUM(B_1.Value), SUM(B_2.Value)
FROM A INNER JOIN
B_1 ON A.ID = B_1.AID INNER JOIN
B_2 ON A.ID = B_2.AID INNER JOIN
City ON A.CityID = City.ID
GROUP BY City.CityName, A.Date
假设我们有这些值:
Data for Table [City] =>
ID CityName
-- --------
1 LA
2 NYC
Data for Table [A] =>
ID CityID Date Value
-- ------ ---- -----
1 1 2014 8
2 1 2014 5
3 2 2014 3
Data for Table [B_1] =>
ID AID Value
-- --- -----
1 1 3
2 1 6
3 2 7
4 2 2
Data for Table [B_2] =>
ID AID Value
-- --- -----
1 1 8
2 1 5
3 2 3
4 2 1
我正在努力实现这个结果:
CityName Date AValue B1Value B2Value
-------- ---- ------ ------- -------
LA 2014 13 18 17
但结果是:
CityName Date AValue B1Value B2Value
-------- ---- ------ ------- -------
LA 2014 52 36 34
怎么了???
【问题讨论】:
标签: sql sql-server group-by inner-join olap-cube