anoniem Geplaatst: 27 oktober 2005 Delen Geplaatst: 27 oktober 2005 Ik heb een hoofdtabel en een subtabel. Dit is een 1:n relatie. Dus iemand heeft bijvoorbeeld 5 e-mailadressen. Maar nu wil ik alleen het eerste e-mailadres van alle personen tonen. Top 1 werkt niet, dan krijg ik inderdaad maar één resultaat. DISTINCT werkt ook niet. Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2005 Auteur Delen Geplaatst: 27 oktober 2005 Dat kan met een GROUP BY. Bedenk je echter dat een tabel ongeordend is, dus wat versta jij onder 'het eerste e-mailadres'. Heb je bijvoorbeeld een kolom 'volgnummer' o.i.d. opgenomen, dan kun je dat gebruiken. Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2005 Auteur Delen Geplaatst: 27 oktober 2005 [i:cb402e8db3][b:cb402e8db3]GROUP BY...[/b:cb402e8db3] GROUP BY... was added to SQL because aggregate functions (like SUM) return the aggregate of all column values every time they are called, and without the GROUP BY function it was impossible to find the sum for each individual group of column values. [/i:cb402e8db3] Ik wil helemaal geen optelling. Voorbeeld: tabel Naam NaamID naam tabel Email. EmailID NaamID Emailadres uitwerking wiep, 1, emailadres1@home.nl wiep, 1, emailadres2@home.nl wiep, 1, emailadres3@home.nl wiep, 1, emailadres4@home.nl wiep, 1, emailadres5@home.nl Joost1970, 2, emailadres1@home.nl Joost1970, 2, emailadres2@home.nl Joost1970, 2, emailadres3@home.nl Ik wil alleen de eerste van de rijtjes zien: wiep, 1, emailadres1@home.nl Joost1970, 2, emailadres1@home.nl Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2005 Auteur Delen Geplaatst: 27 oktober 2005 Je moet wel GROUP BY gebruiken, omdat je dan FIRST(<item>) in je select statement kunt plaatsen. [code:1:cfdc90f013]SELECT Naam.Naam, Naam.NaamID, FIRST(Email.Emailadres) FROM Naam Inner Join Email ON Naam.NaamID = Email.NaamID GROUP BY Naam.Naam, Naam.NaamID[/code:1:cfdc90f013] Zo kun je ook het laatste adres vinden (LAST(Emailadres) :wink:) Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2005 Auteur Delen Geplaatst: 27 oktober 2005 THANKS, een bos bloemen komt uw kant op (bij wijze van spreken natuurlijk). Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2005 Auteur Delen Geplaatst: 27 oktober 2005 Vervolg. Hoe toon ik het e-mailadres in een Repeater? <%# DataBinder.Eval(Container.DataItem, "Naam")%> <%# DataBinder.Eval(Container.DataItem, "NaamID")%> <%# DataBinder.Eval(Container.DataItem, "????????????????")%> Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2005 Auteur Delen Geplaatst: 27 oktober 2005 Geef het beestje een naam: [code:1:d9c0c35bb3]SELECT Naam.Naam, Naam.NaamID, FIRST(Email.Emailadres) AS EersteAdres FROM ...[/code:1:d9c0c35bb3] Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2005 Auteur Delen Geplaatst: 27 oktober 2005 Wederom mijn dank. Ik had al even AS gebruikt maar toen had ik er waarschijlijk een andere fout in staan :D Quote Link naar reactie
anoniem Geplaatst: 27 oktober 2005 Auteur Delen Geplaatst: 27 oktober 2005 [quote:0f3083123a="Wiep Corbier"]Wederom mijn dank.[/quote:0f3083123a]Graag gedaan 8) Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen