2010-02-05 8 views
0
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 

La vue ci-dessus produit cette sortie. Il feches les six derniers matchs de l'équipe ΜΠΙΛΕΦΕΛΝΤ avec les buts marqués.Comment devrais-je modifier ce choix SQL?

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

Comment devrais-je modifier cette vue, afin d'obtenir la somme des buts marqués par l'équipe?

Par exemple, je voudrais produire une sortie comme celui-ci ...

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

Répondre

3
SELECT 
    @YourTeam , 
    SUM(
     CASE 
      WHEN [email protected] THEN dt.GoalsIn 
      WHEN [email protected] THEN GoalsOut 
      ELSE 0 
     END 
     ) AS Goals 
    FROM (

     --YOUR QUERY HERE 

     ) dt 
+0

je pense avoir mal orthographié quelque chose ... je reçois l'erreur, le nom de colonne non valide « Team ». Par ailleurs .. celui-ci est appelé imbriqué select? – OrElse

+0

dans votre requête vous avez la deuxième équipe: "AS TeamGR" mais dans l'exemple de sortie vous l'avez répertorié comme "Team", j'ai utilisé "Team" dans la deuxième fois dans le CAS, ils doivent être identiques, je les édite ma réponse et la question pour qu'ils soient tous synchronisés. J'aime l'appeler une table dérivée. –