与聚合组件的SQL联合

Asked
Viewd258

0

我有一个查询,可用于在报表服务中进行图表绘制,如下所示:

(从tbl中选取SELECT Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu和Xi
哪里
Alpha in(@Alphas)和
Beta(@Betas)和
伽玛(@Gammas)和
三角洲(@Deltas)和
Epsilon(@Epsilons)和
Zeta(@Zetas)和
埃塔(@Etas)和
Theta in(@Thetas))
联盟
(来自tbl的SELECT Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu和Omicron
哪里
Alpha in(@Alphas)和
Beta(@Betas)和
伽玛(@Gammas)和
三角洲(@Deltas)和
Epsilon(@Epsilons)和
Zeta(@Zetas)和
埃塔(@Etas)和
(@Thetas)中的Theta

Alpha到Theta将用于两个计算字段中,这些字段将它们(例如Alpha,Beta,Gamma)连接到一个字段中的字符串中。 Omicron的select语句将生成与Xi相同的行数,但我真正想要的是聚合Omicron,因此,如果使用Xi的Select查询生成9个图例项,则Omicron的聚合select应该只生成一个图例项,因为值Alpha至Theta对Omicron而言并不重要。如何构造查询,以便我可以使用通过Theta的Alpha作为参数,但仍可以聚合Omicron?

2 个答案

0

为什么不只在一条select语句中选择所有希腊语,Xi和Omicron,然后以宿主语言计算总和?那是一个可能代价高昂的查询,而不是两个。

  • 我认为我听不懂您的回答。原始数据是直接选择的,这是在报表中使用数据之前将数据准备在报表服务中。那么您的sql会是什么样子?

    TheObserverOctober 20, 2008 09:40
1

我不确定您真正想要什么,但是如果我理解正确,则可以尝试以下操作:

 (SELECT a,b,c,d FROM k
WHERE a in (@a) and b in (@b) and c in (@c))
UNION
(SELECT NULL,NULL,NULL,sum(e) FROM k
WHERE a in (@a) and b in (@b) and c in (@c) GROUP BY e)
 

仅因能够执行联合而为NULL(保持列数,您可能必须进行列别名)