【问题标题】:How should i modify this SQL select?我应该如何修改这个 SQL 选择?
【发布时间】:2010-02-05 18:50:19
【问题描述】:
SELECT     TOP (5) mydb.Te.TeamGR AS TeamInGR, Te_1.TeamGR, SUBSTRING(mydb.Data.AkrivesSkor, 1, 1) AS GoalsIn, SUBSTRING(mydb.Data.AkrivesSkor, 3, 1) 
                      AS GoalsOut
FROM         mydb.Te INNER JOIN
                      mydb.Data ON mydb.Te.TeamID = mydb.Data.TeamInID INNER JOIN
                      mydb.Diorganoseis ON mydb.Data.DioID = mydb.Diorganoseis.DioID INNER JOIN
                      mydb.Te AS Te_1 ON mydb.Data.TeamOutID = Te_1.TeamID
GROUP BY mydb.Te.TeamGR, mydb.Diorganoseis.DioGR, mydb.Diorganoseis.DioEN, Te_1.TeamGR, mydb.Data.DataID, mydb.Data.Hmerominia, 
                      SUBSTRING(mydb.Data.AkrivesSkor, 1, 1), SUBSTRING(mydb.Data.AkrivesSkor, 3, 1)
HAVING      (mydb.Te.TeamGR = N'ΜΠΙΛΕΦΕΛΝΤ') OR
                      (Te_1.TeamGR = N'ΜΠΙΛΕΦΕΛΝΤ')
ORDER BY mydb.Data.DataID DESC

上面的视图产生了这个输出。它记录了 ΜΠΙΛΕΦΕΛΝΤ 球队最近六场比赛的进球数。

TeamInGR         TeamGR            GoalsIn   GoalsOut
ΑΟΥΓΚΣΜΠΟΥΡΓΚ    ΜΠΙΛΕΦΕΛΝΤ        3         1
ΜΠΙΛΕΦΕΛΝΤ       ΚΟΜΠΛΕΝΤΖ         4         2
ΧΑΝΣΑ ΡΟΣΤΟΚ     ΜΠΙΛΕΦΕΛΝΤ        1         1
ΟΜΠΕΡΧΑΟΥΖΕΝ     ΜΠΙΛΕΦΕΛΝΤ        0         0
ΜΠΙΛΕΦΕΛΝΤ       ΟΥΝΙΟΝ ΒΕΡΟΛΙΝΟΥ  1         1

我应该如何修改这个视图,以便得到队 ΜΠΙΛΕΦΕΛΝΤ 得分的总和?

例如,我想产生这样的输出...

Team       TotalGoals
ΜΠΙΛΕΦΕΛΝΤ     9

【问题讨论】:

    标签: sql sql-server-2005 select nested


    【解决方案1】:
    SELECT 
        @YourTeam ,
        SUM(
            CASE
                WHEN dt.TeamInGR=@YourTeam THEN dt.GoalsIn
                WHEN dt.TeamGR=@YourTeam THEN GoalsOut
                ELSE 0
            END
           ) AS Goals
        FROM (
    
             --YOUR QUERY HERE
    
             ) dt
    

    【讨论】:

    • 我想我打错了一些东西...我收到错误,列名“团队”无效。对了。。这个叫嵌套选择?
    • 在您的查询中,您有第二个团队:“AS TeamGR”,但在示例输出中,您将其列为“团队”,我在第二个案例中使用了“团队”,他们需要同样,我编辑了我的答案和问题,使它们都保持同步。我喜欢称它为派生表。
    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多