首先,如果标题以任何方式误导,我都要道歉。这是我第一次参加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,但是这不符合问题的要求
答案 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"
这不是我见过的最漂亮的查询,但我确信它能完成这项工作。