我有一个表有2列保留主页和远离团队ID然后2列保留主页和远点,我想查询数据库,以便它返回特定团队获得的总点数。这是我的代码,它返回一个比实际值少1的答案,它为我尝试的每个团队做到了,为什么会这样?
select sum(coalesce(hpoints,apoints)) Points
from plays_a
where (tawayid='2013T1' or thomeid='2013T1')
谢谢
将尝试此其他查询。
编辑 - 似乎没有工作,它返回5这个数据。
HPOINTS THOMEID APOINTS TAWAYID
---------- ---------- ---------- ----------
1.5 2013T5 2.5 2013T6
3 2013T4 1 2013T1
2 2013T6 2 2013T3
2 2013T2 2 2013T5
3 2013T6 1 2013T1
3 2013T2 1 2013T3
2.5 2013T4 1.5 2013T5
1 2013T3 3 2013T1
1 2013T4 3 2013T2
3 2013T6 1 2013T5
3 2013T3 1 2013T2
NEVERMIND看起来是正确的会再次尝试使用其他团队并回发
答案 0 :(得分:1)
我想你想要这个查询:
select sum(CASE WHEN thomeid='2013T1' THEN hpoints ELSE apoints END) Points
from plays_a
where (tawayid='2013T1' or thomeid='2013T1')
在原始查询中,如果不是NULL
,即使球队是客场球队,你也总是拿着主队得分。这似乎不正确。当然,您的表格可能完全奇怪,并且始终只填写任何特定行中的主列或,但这不是我期望数据看起来和看起来不像的方式符合你的描述。