SQL>从Diff中选择给定唯一条件的多个和。表

时间:2014-11-27 21:19:23

标签: mysql sql-server xampp

首先,如果标题以任何方式误导,我都要道歉。这是我第一次参加StackOverflow,我还在学习SQL。无论如何,我正在研究一个小问题,以便在学校进入SQL单元。

我将提供一些问题的背景知识。 一个城市的曲棍球协会有一个SQL数据库,无论谁做了这个问题,都被认为是被要求从数据库中获取某些信息的人。

此问题要求您使用SUM显示仅由已完全支付的玩家支付的费用总额,来自两个单独的联赛(表格)。这意味着,每个联盟一笔,所以2笔钱。

对于第一个联赛,tblCompPlayers的竞争对手必须为他们的赛季支付300美元。 在第二个联赛中,tblRecPlayers的休闲玩家必须为他们的赛季支付125美元。

每张桌子中都有玩家已全额支付部分费用,或根本没有支付费用。

我遇到的情况是,执行单独的选择SUM语句只会为最后执行的select语句生成结果。

我想要实现的是,我希望在不同的行中并排显示两个总和,尽管它们的列是相同的 - 并且他们从中抽取的表是不同的。 / p>

此时我已经结束了使用案例陈述,因为我已经并排了位

SELECT SUM(CASE WHEN tblCompPlayers.FeesPaid = 300 THEN tblCompPlayers.FeesPaid END) AS "Total of Comp. Fees Paid in Full",
       SUM(CASE WHEN tblRecPlayers.FeesPaid = 125 THEN tblRecPlayers.FeesPaid END) AS "Total of Rec. Fees Paid in Full"
FROM tblCompPlayers, tblRecPlayers

这会显示下表

Total of Comp. Fees Paid in Full | Total of Rec. Fees Paid in Full 
---------------------------------|-----------------------------------------
28800.00                         | 13000.00

但是,当我手动完成并计算总和时,Comp费用为2400,Rec为1000。费

我知道一些错误,但此时我已经支持自己进入一个角落,从哪里开始,我无法弄清楚哈哈

这里的任何帮助将不胜感激。我可能过于复杂了..我能看到回答这个问题的另一种方法是做2个单独的查询,一个用于计算Comp的总和,一个用于Rec,但是这不符合问题的要求

1 个答案:

答案 0 :(得分:0)

我认为你在这里寻找的是一对子查询,如下所示:

SELECT 
(SELECT SUM(CASE WHEN tblCompPlayers.FeesPaid = 300 THEN tblCompPlayers.FeesPaid END) FROM tblCompPlayers) AS "Total of Comp. Fees Paid in Full"
, (SELECT SUM(CASE WHEN tblRecPlayers.FeesPaid = 125 THEN tblRecPlayers.FeesPaid END) FROM tblRecPlayers) AS "Total of Rec. Fees Paid in Full"

这不是我见过的最漂亮的查询,但我确信它能完成这项工作。

相关问题