Avatar billede fiskeren Nybegynder
18. december 2001 - 09:36 Der er 3 kommentarer og
1 løsning

SQL problemer i Oracle8

Hejsa!

Jeg skal have vist en fiskers samlede fangst i kilo for en given periode! Nedenstående SQL-statement skulle gerne give dette, men den giver blot flg. fejl:

Input er afskåret til 3 tegn
)
*
FEJL i linie 20:
ORA-00936: manglende udtryk

Det er sikkert enkelt, men hvordan retter jeg i mit nuværende SQL-statement så det kommer til at virke, eller er jeg helt på gale veje?

På forhånd tak for hjælpen!
Mvh. Mads

Her er SQL\'en:

SELECT
    SUM(Fangster.Kilo)
FROM
    Fangster
WHERE
(
    SELECT
        Kunder.KundeID, Kunder.Navn,
        TO_CHAR(Logbog.StartTidspunkt, \'DD-MM-YY\') AS StartTidspunkt,
        TO_CHAR(Logbog.SlutTidspunkt, \'DD-MM-YY\') AS SlutTidspunkt,
        Fangster.Kilo
    FROM
        Logbog, Kunder, Fangster
    WHERE
        StartTidspunkt > to_date(\'05-01-01\',\'DD-MM-YY\')
        AND SlutTidspunkt < to_date(\'13-01-01\',\'DD-MM-YY\')
        AND Logbog.KundeID = Kunder.KundeID
        AND Fangster.LogID = Logbog.LogID
        AND Kunder.KundeID = 3
);
Avatar billede proaccess Nybegynder
18. december 2001 - 09:47 #1
SELECT
    SUM(Fangster.Kilo)
FROM
    Fangster, Logbog, Kunder
WHERE
    StartTidspunkt > to_date(\'05-01-01\',\'DD-MM-YY\')
    AND SlutTidspunkt < to_date(\'13-01-01\',\'DD-MM-YY\')
    AND Logbog.KundeID = Kunder.KundeID
    AND Fangster.LogID = Logbog.LogID
    AND Kunder.KundeID = 3
Avatar billede alsted Nybegynder
18. december 2001 - 09:47 #2
Hej Mads.

Dit select statement er skruet forkert sammen, da der i yderstete WHERE statement ikke er nogen betingelse, men blot et nyt select statement. Prøv istedet

SELECT  Kunder.KundeID, Kunder.Navn,sum(Fangster.kilo)
  FROM  Logbog, Kunder, Fangster
WHERE  StartTidspunkt > to_date(\'05-01-01\',\'DD-MM-YY\')
  AND SlutTidspunkt < to_date(\'13-01-01\',\'DD-MM-YY\')
  AND Logbog.KundeID = Kunder.KundeID
  AND Fangster.LogID = Logbog.LogID
  AND Kunder.KundeID = 3
GROUP BY Kunder.KundeID, Kunder.Navn
Avatar billede pgroen Nybegynder
18. december 2001 - 09:50 #3
Du gør da vist tingene unødigt komplicerede for dig selv - hvorfor ikke blot:

SELECT
  SUM(Fangster.Kilo)
FROM
  Logbog, Kunder, Fangster
WHERE
  StartTidspunkt > to_date(\'05-01-01\',\'DD-MM-YY\')
AND SlutTidspunkt < to_date(\'13-01-01\',\'DD-MM-YY\')
AND Logbog.KundeID = Kunder.KundeID
AND Fangster.LogID = Logbog.LogID
AND Kunder.KundeID = 3
;
Avatar billede fiskeren Nybegynder
18. december 2001 - 09:52 #4
Tak alle sammen.
Men jeg skulle også have andre felter med der skriver kundens navn og id ud! Det glemte jeg at nævne i spørgsmålet, men alsted fik det lige med alligevel.
Jeg takker mange gange!

Mvh. Mads
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