【发布时间】:2018-09-19 07:03:21
【问题描述】:
我正在使用 asp.net 编写 Web 表单页面。我有两张不同的桌子。两个表都有相同的列,只是数据不同。例如:
Table 1: col1, col2, col3
123 $12.54 Tom
34 $7.00 Jan
Table 2: col1, col2, col3
123 $125.00 Tom
56 $12.00 Joe
我正在尝试编写一个将两个表组合在一起的 sql 语句,如果表 1 中的 Col1 与表 2 中的 col1 相同,我想将第 2 列的值相加。例如:
Col1 col2 col3
123 $137.54 Tom
34 $7.00 Jan
56 $12.00 Joe
这里是 sql 查询:
表1:
SELECT ABAN8 as Number, SUM(SDAEXP * .01) as SaleAmount, A5POPN as Rep
FROM KAIPRDDTA.F0101, KAIPRDDTA.F4211, KAIPRDDTA.F0301
WHERE A5AN8 = ABAN8
AND ABAN8 = SDAN8
AND SDKCOO = '00001'
AND SDDCTO not like '%2'
AND A5DAOJ >= '118069'
AND A5DAOJ <= '118099'
GROUP BY ABALPH, A5POPN, ABAN8, A5UPMT, A5CMC1
表2:
SELECT ABAN8 as Number, SUM(SDAEXP * .01) as SaleAmount, A5POPN as Rep
FROM KAIPRDDTA.F0101, KAIPRDDTA.F42119, KAIPRDDTA.F0301
WHERE A5AN8 = ABAN8
AND ABAN8 = SDAN8
AND SDKCOO = '00001'
AND SDDCTO not like '%2'
AND A5DAOJ >= '118069'
AND A5DAOJ <= '118099'
GROUP BY ABALPH, A5POPN, ABAN8, A5UPMT, A5CMC1
我知道连接语法已经过时,但这就是这家公司使用它的方式。如果您需要更多信息,请告诉我,并提前感谢您的回复!
【问题讨论】:
-
您的数据样本和您的代码似乎不相关..
-
(1) 您提到两个表,但您的查询有三个。 (2) 标记您正在使用的数据库。 (3) 在正确使用数据库的公司找到工作。
-
我是 Gordon 的第三部分。隐式连接不仅过时了,而且已经过时了超过 25 年(!)。
-
另外,列名是怎么回事?你工作的公司是否停留在 1985 年,因为内存太贵,一切都被缩短到最低限度?正是这种精神导致了对 y2k 错误的大规模歇斯底里……你真的,真的应该找一家更好的公司工作。
-
佐哈尔,你为什么不尝试帮助而不是担心我们都无法控制的事情