Avatar billede elkay Nybegynder
09. april 2009 - 18:28 Der er 3 kommentarer

Hjælp til query

Hej

Er nybegynder indenfor dette, har prøvet i flere dage uden held at få det til at virke, så prøver nu at spørge her i håb om at der er en der vil løse problemet.

Skal have data ud af min db i 3 kolonner, medarbejder navn, løntimer, fakturatimer,

Har prøvet med dette:
SELECT medarbejder,loentimer,fakttimer
FROM (SELECT SUM(antal_timer)as loentimer,medarbejder FROM timeregistrering
WHERE registreringstype IN('arbejdskort','værkstedstid','udetimer')
GROUP BY medarbejder) AS t1 LEFT JOIN (SELECT SUM(antal_timer)as fakttimer FROM timeregistrering WHERE registreringstype IN('arbejdskort','udetimer') GROUP BY medarbejder) AS t2
ON t1.loentimer AND t2.fakttimer

Så får jeg dette resultat:
medarbejder1  20  10
medarbejder1  20  20
medarbejder1  20  30
medarbejder2  30  10
medarbejder2  30  20
medarbejder2  30  30
medarbejder3  40  10
medarbejder3  40  20
medarbejder3  40  30

Men det er dette resultat jeg gerne vil have:
medarbejder1 20 10
medarbejder2 30 20
medarbejder3 40 30

Håber der er nogen der kan hjælpe.
Avatar billede TorbenF Nybegynder
12. april 2009 - 02:42 #1
Hej elkay

Jeg er også ny i SQL, så det er lidt et gæt, men måske kan det bruges alligevel.

Har du prøvet at lave en join ala:

on (t1.medarbejder=t2.medarbejder)

Hvad sker der forresten hvis du helt undlader at lave et join, men bare selecter dine kolonner?

vh Torben
Avatar billede elkay Nybegynder
13. april 2009 - 15:53 #2
Hvis jeg prøver med: on (t1.medarbejder=t2.medarbejder)
får jeg fejlen: #1052 - Column 'medarbejder' in field list is ambiguous.

Prøver jeg at undlade join får jeg denne fejl:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( SELECT SUM( antal_timer ) as fakttimer FROM timeregistrering WHERE registrerin' at line 1

Så jeg er lidt på bar bund.
Avatar billede elkay Nybegynder
13. april 2009 - 16:57 #3
Har selv løst det nu.

andet select statement skulle der tilføjes
'medarbejder as medarbejder1'
og
on t1.medarbejder=t2.medarbejder1
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