【发布时间】:2009-10-13 11:32:36
【问题描述】:
我有一张表,其结构如 table(PK, a, b, c, d, e, f, g)。
我有很多想加入的查询:
select PK, sum(c) where...
JOIN
select PK, sum(e) where...
JOIN
select PK, sum(g) where ...
JOIN
select PK,a,b,d,f
每个 sum(c|e|g) 实际上都是一个
select sum(c|e|g) from .... where...
因为涉及的条件很多(不是所有的c|e|g都必须加)
这是最好的方法吗?有人建议我用 PL / SQL 编写它,我必须学习。如果它是要走的路,我会这样做,但我不确定上面显示的解决方案有什么问题。
编辑
我很确定它是一个加入。这就是我想要的。
我需要得到一个结果集的形式:
PK, a,b,COMPLEX_SUM_ON_C,d,COMPLEX_SUM_ON_D,f,COMPLEX_DUM_ON_G
所以我想加入许多查询来得到这个结果。
每个 COMPLEX... 都是另一个选择(选择总和...)。这是一张很大的桌子,写着
select a,b,(select sum..),d,(select sum...),f,(select sum...)
会产生不好的性能(所以我被告知要删除它)
我已经编辑了上面的查询。
提前致谢。
【问题讨论】:
-
你确定你的意思不是联合吗?
-
请显示输入表中的示例行和所需的输出。正如其他人所指出的,不清楚您是想要 JOIN 还是 UNION。此外,您的表格可能存在重大设计问题(取决于数据的实际外观)。
-
如果不知道您希望从该查询中得到什么样的结果,就很难回答这个问题。我建议你在这里快速浏览一下:en.wikipedia.org/wiki/Join_%28SQL%29 看看它是否真的是你想要的 JOIN。
-
我已经编辑了我的问题。