Avatar billede agerled Nybegynder
04. oktober 2005 - 08:05 Der er 7 kommentarer

Nogen der kan se det forkerte i dette SQL statement

Hej.

Mine sum tal bliver alt alt for høje....???

SQL = "select hitrate.Navn,hitrate.dataset,extract(month from hitrate.dato) as Month,extract(year from hitrate.dato) as year," & _
"sum(prod) as produkter,sum(prod_ur) as produkter_ur," & _
"sum(sa) as servabon,sum(fors) as forsabon,sum(ma) as teleabon" & _
" from hitrate_ordreposter ordre " & _
" join hitrate on hitrate.navn = ordre.navn " & _
" where hitrate.dataset = '" & Dataset.ToUpper & "' and extract(month from hitrate.dato)= '" & Month & "'  and extract(year from hitrate.dato) = '" & Year & "'" & _
" group by hitrate.navn,hitrate.dataset,extract(month from hitrate.dato),extract(year from hitrate.dato)"
Avatar billede psv Nybegynder
04. oktober 2005 - 08:23 #1
Det ser på mig ud som om du vil have fat i count(prod) i stedet for sum(prod) - i hvert fald hvis prod-kolonnen er en reference... Hvis det er tilfældet skal du bare ændre sum() til count() hvor du vil tælle rækker og ikke lægge tallerene sammen!
Avatar billede agerled Nybegynder
04. oktober 2005 - 08:39 #2
Hej.

Det er summen jeg vil have.

Det virker som den tager alt fra tabellen hitrate_ordreposter istedet for kun at udvælge data som opfylder extract(month from dato) kriteriet...

andre forslag???
Avatar billede Slettet bruger
04. oktober 2005 - 10:02 #3
Prøv at skære sætningen ud, så du bare selecter de felter som udfylder exact(monty from dato) kriteriet, og se om de bliver rigtigt valgt.
Avatar billede agerled Nybegynder
04. oktober 2005 - 11:09 #4
Hej.

Jeg forstår ikke helt hvad du mener...??
Avatar billede Slettet bruger
04. oktober 2005 - 11:25 #5
Jeg tænker på, om du kan lave en primitiv selection, at de data du vil udvælge.

I stedet for at få returneret en sum, så få returneret de rækker du lægger sammen, for at se om du selecter noget forkert.

På den måde kan du insnævre problemet, et trin ad gangen.
Avatar billede agerled Nybegynder
04. oktober 2005 - 12:19 #6
nu har jeg prøvet denne her:

"select hitrate.navn,sum(kaldsalg) as kaldsalg,sum(prod) as produkter,sum(prod_ur) as produkter_ur from Hitrate " & _
        " inner join hitrate_ordreposter ordre on ordre.navn = hitrate.navn and hitrate.dato = ordre.dato " & _
        " where (hitrate.dato >= '2005-10-01' and hitrate.dato <= '2005-10-04') " & _
              " and hitrate.dataset = 'DAT' group by hitrate.navn"

...prod og prod_ur ser ud til at passe, men summen af kaldsalg er alt alt for høj...???
Avatar billede oguru Nybegynder
16. november 2005 - 09:58 #7
Du har gjort det rigtige i 2. forsøg ved at huske at joine over ordre.dato og hitrate.dato, men prøv at udskrive data fra ordretabellen for et snævert datointerval og se om du ikke kan spore dig ind på problemet derfra.
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