08. december 2006 - 07:19Der er
11 kommentarer og 1 løsning
Problemer med at få en join til at virke ?
Hejsa,
Jeg sidder og roder med en sql forspørgelse som jeg ikke kan få til at virke.
Jeg har 2 tabeller en ordrehoved og en ordrelinier. Det jeg skal er følgende :
1. Finde ud af om en kunde har mere end en ordre. 2. Hvis kunden har mere end en ordre skal der tjekkes om et varenummer går igen på 2 eller flere ordre.
Da kunde id ikke ligger i ordrelinier skal sql'en laves med en join og det kan jeg ikke helt hitte rede i.
Håber der er en der kan hjælpe mig igennem dette ;o)
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Jeg har lavet flere forsøg og det der kom tættes på er noget der ligne dette :
Select count(distinct(ordlinier.varenummer)), ordrehoved.debitorkonto from ordlinier left join ordrehoved on ordlinier.ordrenummer = ordrehoved.ordrenummer group by ordrehoved.debitorkonto having (count(ordlinier.varenummer) > 1)
prøv denne.. ved ikke helt om det vil fungere.. tjek om ikke andet lige syntax igennem;) det er lidt svært selv at se når jeg bare skriver her på E.. men ellers noget som det jeg skriver her... hvis det er valid SQL=)
SELECT ordlinier.ordrenummer as ordl,ordrehoved.ordrenummer as ordh, ordlinier.varenummer as ordvar FROM ordrehoved, ordlinier WHERE ordl = ordh AND ordl IN (SELECT COUNT(odrenummer) as antal FROM ordlinier as ol WHERE ol.ordrenummer = ordl AND antal > 0) AND ordvar IN (SELECT COUNT(ordlinier.varenummer) as am FROM ordlinier as olg WHERE olg.varenummer = ordvar AND am > 1)
Jeg har lige forsøgt mig lidt frem og tilbage og har ændret lidt på den :
SELECT ordlinier.ordrenummer, ordrehoved.ordrenummer, ordlinier.varenummer FROM ordrehoved, ordlinier WHERE ordlinier.ordrenummer = ordrehoved.ordrenummer AND ordlinier.ordrenummer IN ( SELECT COUNT(ordrenummer) AS n FROM ordlinier ol WHERE ol.ordrenummer = ordlinier.ordrenummer AND n > 0)
AND ordlinier.varenummer IN ( SELECT COUNT( ordlinier.varenummer ) AS m FROM ordlinier olg WHERE olg.varenummer = ordlinier.varenummer AND m > 1 )
Men med denne får jeg fejl på henholdsvis 'n' og 'm' :
Unknown column 'n' in 'where clause' Unknown column 'm' in 'where clause'
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.