几个小时以来,我一直在思考我认为简单的 SQL SELECT 命令。我搜索了所有地方并阅读了所有与我相关的问题。我尝试了一个 SQL 命令生成器,甚至阅读并应用了完整系列的 SQL 教程和手册,试图从头开始理解它来构建它(这对我来说非常重要,关于我最终必须构建的下一个命令......) .
但是现在我只是坚持我想要的结果,但是在分离 SELECT 命令时,我似乎无法聚集在一起!
这是我的情况:3个表,第一个链接到第二个有一个公共ID,第二个链接到第三个有另一个公共ID,但从第一个到第三个没有公共ID。比方说:
Table A : id, name
Table B : id, idA, amount
Table C : id, idB, amount
表 A 中的几个名称。表 B 中的几个数量。表 C 中的几个数量。所需的结果:每个 A.id 和 A.name,具有 B.amount 的相应 SUM,以及 C.amount 的相应 SUM。比方说:
A.id
A.name
SUM(B.amount) WHERE B.idA = A.id
SUM(C.amount) WHERE C.idB = B.id for each B which B.idA = A.id
“前三列”和“前两列和第四列”都可以,都带有 WHERE 子句和/或 LEFT JOIN。但是我不能在不弄乱所有东西的情况下将所有第四列累积在一起!
有人会说“很简单,只需在表 C 中放一个 idA 列”!应该更容易,当然。但真的有必要吗?我不这么认为,但我可能是错的!所以,我只是取悦任何有 SQL 技能的人(我会给他们一个永恒的“SQL 上帝”装饰)笑着回答“这太简单了!只要这样做,你就走了!愚蠢的小新手......”;)
运行 VB 2010 和 MS SQL Server
谢谢阅读 !