我的数据库中有很多表,这些表包括:RowID,ProductID和数值(数值可以是NULL,这意味着无穷大)。在表中可以有许多具有相同ProductId的行。是否可以使函数接受某些表(不是全部,仅由我选择)并返回包含每个表的所有ProductId的新表,但表中只有一个ProductId,而数值是每个表中所有行的总和表。例如
表1:
RowID ProductID Numeric Value
0 1 1.5
1 1 3.5
2 2 4
表2:
RowID ProductID Numeric Value
0 1 6
1 3 1.25
2 3 NULL
返回表:
ProductID Numeric Value
1 11 (1.5+3.5+6)
2 4
3 NULL (1.25 + NULL)
*它也可以返回0而不是NULL,所有数值均为正数,因此0可以表示无穷大
答案 0 :(得分:0)
我认为您可以先合并两列,然后将它们分组-
SELECT PID, CASE WHEN COUNT(*) = COUNT(NV) THEN SUM(NV) ELSE NULL END
FROM (SELECT ProductID PID, Numeric Value NV
FROM TABLE_1
UNION ALL
SELECT ProductID, Numeric Value
FROM TABLE_2) T
GROUP BY PID