12. marts 2003 - 13:47Der er
17 kommentarer og 1 løsning
SQL sætning returnerer ingen data
Jeg har følgende SQL sætning, som indeholder en eller anden fejl, eftersom den ikke returnerer nogen data, selvom der er data i begge tabellerne: SQL1 = "SELECT partnere.id, partnere.navn, partnere.firma, partnere.www, partnere.email, partnerklik.id, COUNT(partnerklik.id) AS antalklik FROM partnere LEFT JOIN partnerklik ON partnere.id = partnerklik.partnerid GROUP BY partnere.id ORDER BY antalklik DESC;"
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
SQL1 = "SELECT partnere.id, partnere.navn, partnere.firma, partnere.www, partnere.email, COUNT(partnerklik.id) AS antalklik FROM partnere LEFT JOIN partnerklik ON partnere.id = partnerklik.partnerid GROUP BY partnere.id, partnere.navn, partnere.firma, partnere.www, partnere.email ORDER BY antalklik DESC"
SELECT id, navn, firma, adresse, postnr, bynavn, telefon, www, email, count(partnerid) FROM PARTNERE t1 LEFT JOIN PARTNERKLIK t2 ON t1.id = t2.partnerid GROUP BY id, navn, firma, adresse, postnr, bynavn, telefon, www, email ORDER BY count(partnerid) DESC
det der udtræk har jeg kørende i en access tabel, der er en pendant til din - og det giver mig antallet af instanser af PARTNERE.id i PARTNERKLIK - fordelt på hvert id - det giver nul, hvis id'et ikke findes i PARTNERKLIK
bare udelad de tabelaliaser jeg har taget med (t1 og t2 samt t1. og t2.) - de er ikke nødvendige her når der ikke er navnesammenfald på tabellernes felter
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [TCX][MyODBC]Column: 'id' in field list is ambiguous
/admin/includes/user.asp, line 4098
De har jo begge et felt, der hedder id..... Og hvor kommer t1 og t2 fra???? Kan jeg tilføje en tabel mere, som hedder SALG og indeholder felterne id, partnerid, salg
SELECT t1.id, t1.navn, t1.firma, t1.adresse, t1.postnr, t1.bynavn, t1.telefon, t1.www, t1.email, t2.count(partnerid) FROM PARTNERE t1 LEFT JOIN PARTNERKLIK t2 ON t1.id = t2.partnerid GROUP BY t1.id, t1.navn, t1.firma, t1.adresse, t1.postnr, t1.bynavn, t1.telefon, t1.www, t1.email ORDER BY count(t2.partnerid) DESC
t1 og t2 er bare 2 tabel aliaser jeg har givet tabellerne - det svarer til at man skriver partnere.id, partnere.navn osv. - altså bare en reference til tabellerne (det er jo nemmere at skrive t1 end partnere og t2 istedet for partnerklik).
Hvordan vil du bruge tabellen salg? Skal den bare med i udtrækket som en-til-en relation mellem partnertabellen?
SELECT t1.id, t1.navn, t1.firma, t1.adresse, t1.postnr, t1.bynavn, t1.telefon, t1.www, t1.email, count(t2.partnerid), (SELECT sum(i2.salg) FROM PARTNERE i1 LEFT JOIN Salg i2 ON i1.id = i2.partnerid WHERE i1.id = t1.id GROUP BY i1.id) FROM PARTNERE AS t1 LEFT JOIN PARTNERKLIK AS t2 ON t1.id=t2.partnerid GROUP BY t1.id, t1.navn, t1.firma, t1.adresse, t1.postnr, t1.bynavn, t1.telefon, t1.www, t1.email ORDER BY count(t2.partnerid) DESC
Microsoft OLE DB Provider for ODBC Drivers error '80040e09' [TCX][MyODBC]You have an error in your SQL syntax near 'SELECT sum(i2.salg) FROM PARTNERE i1 LEFT JOIN Salg i2 ON i1.id = i2.partnerid W' at line 1
P.S.... Du får sq 100 ekstra pts hvis det her lykkes ;o)
hmm jeg synes at MySQL er lidt underlig på det punkt - men det er nok bare mig, der ikke forstår at bruge den rigtigt.
Under alle omstændigheder kan dette
SELECT t1.id, t1.navn, count(t2.partnerid) as ClickCount FROM partnerklik t2 RIGHT JOIN partnere t1 ON t1.id=t2.partnerid GROUP BY t1.id, t1.navn ORDER BY ClickCount DESC
give dig antal klik pr. partner - du skal bare selv lige tilføje de andre felter - dem gad jeg ikke oprette i min MySQL db af dovenskabsmæssige årsager ;)
Bare husk - at for hvert tx.felt du tilføjer i din select - da skal du også tilføje det samme tx.felt i din group by, når du bruger funktioner som Count, Sum osv.
Jeg prøver lige om jeg kan finde ud af at få den sidste tabel joinet med i udtrækket.
/nuno
Synes godt om
Ny brugerNybegynder
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.