Avatar billede weje Nybegynder
09. august 2002 - 17:09 Der er 4 kommentarer og
1 løsning

Create View

Hej

Jeg har en db med 3 tabeller.
<b>Team</b>
idteam
Name

<b>Match</b>
idMatch
Date
idTeamA
idTeamB

<b>TeamMatch</b>
idTeamMatch
idMatch
idTeam
Score
Point

Jeg er ved at lave et view som viser stilling... Jeg har følgende:
SELECT     DISTINCT Team.idTeam,
    Team.Name,
    (
        SELECT    COUNT(*)
        FROM    TeamMatch
        WHERE    Point = 2 AND
            TeamMatch.idTeam = Team.idTeam
    ) AS Won,
    (
        SELECT    COUNT(*)
        FROM    TeamMatch
        WHERE    Point = 1 AND
            TeamMatch.idTeam = Team.idTeam
    ) AS Draw,
    (
        SELECT    COUNT(*)
        FROM    TeamMatch
        WHERE    Point = 0 AND
            TeamMatch.idTeam = Team.idTeam
    ) AS Lost,
    SUM(TeamMatch.Score) AS ScorePlus,
    SUM(TeamMatch.Score) AS ScoreMinus,
    SUM(TeamMatch.Point) AS Point
FROM    Team LEFT OUTER JOIN
    TeamMatch ON
        Team.idTeam = TeamMatch.idTeam
GROUP BY
    Team.Name,
    Team.idTeam

Problemet er ScoreMinus. Den er helt forkert. jeg kan ikke få den til at vise hvor mange må der er blevet scoret IMOD et hold. Jeg ved at jeg skal lave en "nested" select, men kan ikke rigtig få den til det..

På forhånd tak

/Weje
Avatar billede martinlind Nybegynder
10. august 2002 - 09:15 #1
du sum'er jo også det samme som ScorePlus er det ikke nok med en Score som kan blive negativ

/Martin
Avatar billede weje Nybegynder
10. august 2002 - 11:13 #2
??
Jeg har lavet en sql fil som opretter tabeller og putter test data i.
Jeg kan sende den, så du kan se problemet..

/Weje
Avatar billede martinlind Nybegynder
10. august 2002 - 14:23 #3
jeg får ikke tid til at kigge på det idag, men ellers er du da velkommen

martin@e-lind.dk
Avatar billede weje Nybegynder
12. august 2002 - 09:57 #4
Har sendt en mail til Martin. Hvis der er andre der har lyst til at prøve, kan de skrive deres mail...

/Weje
Avatar billede weje Nybegynder
13. august 2002 - 09:56 #5
01:30 i nat fandt jeg selv ud af det.:-)

    (
        SELECT SUM(TM2.Score)
        FROM TeamMatch TM2
        WHERE TM2.idTeam != Team.idTeam AND
        TM2.idMatch IN (
            SELECT TM1.idMatch
            FROM TeamMatch TM1
            WHERE TM1.idTeam = Team.idTeam
        )
    ) AS ScoreMinus,

/Weje
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester