Om du låter bli att ta med stadsdel i select-listan och använder distinct så.
Din(?) databasdesign är helt felaktig. Du borde ha separata tabeller för land, landskap, stad och stadsdel.
3 svar · 240 visningar · startad av evesve
Hej!
Jag har 2 tabeller:
"tblDatabas" med kolumnerna personuppgifter, Land, Landskap, Stad, Stadsdel och
"tblEnheter" med uppgifter på Land,Landsnamn, Landskap,Landskapsnamn, Stad,Stadsnamn, Stadsdel,Stadsdelsnamn.
Land, Landskap, Stad, Stadsdel är textkolumner med 01, 02, osv
Jag får fram alla i en viss stadsdel med:
sql = "SELECT DISTINCT * FROM tblDatabas " & _
"LEFT OUTER JOIN tblEnheter " & _
"ON tblDatabas.Land = tblEnheter.Land " & _
"AND tblDatabas.Landskap = tblEnheter.Landskap " & _
"AND tblDatabas.Stad = tblEnheter.stad " & _
"AND tblDatabas.Stadsdel =tblEnheter.stadsdel " & _
"WHERE tblDatabas.Land = '"&land&"' " & _
"AND tblDatabas.Landskap = '"&landskap&"' " & _
"AND tblDatabas.Stad = '"&stad&"' " & _
"AND tblDatabas.Stadsdel = '"&stadsdel&"' " & _
"ORDER BY "&sortera
Så långt är allt bra.
När jag vill se alla i en viss stad (oavsett stadsdel) försöker jag med:
sql = "SELECT DISTINCT * FROM tblDatabas " & _
"LEFT OUTER JOIN tblEnheter " & _
"ON tblDatabas.Land = tblEnheter.Land " & _
"AND tblDatabas.Landskap = tblEnheter.Landskap " & _
"AND tblDatabas.Stad = tblEnheter.stad " & _
"WHERE tblDatabas.Land = '"&land&"' " & _
"AND tblDatabas.Landskap = '"&landskap&"' " & _
"AND tblDatabas.Stad = '"&stad&"' " & _
"ORDER BY "&sortera
Då kommer samma namn upp lika många gånger som det finns stadsdelar.
Ex:
Kalle 01, 01, 04, 01
Kalle 01, 01, 04, 02
Kalle 01, 01, 04, 03
Kalle 01, 01, 04, 04
Hur fixar jag det?
(Access)
Om du låter bli att ta med stadsdel i select-listan och använder distinct så.
Din(?) databasdesign är helt felaktig. Du borde ha separata tabeller för land, landskap, stad och stadsdel.
Som du ser på mina två exempel så har jag bort stadsdel i exempel 2.
Det är då jag får felen.
Du har säkert rätt angående olika tabeller, men i min dumma enfald så tyckte jag att detta var enklare.
Jag menar att du inte skall göra select * utan att bara ta de kolumner du vill ha.
select distinct land,landskap,stad from databas left join ...