Om du vill få ut det på det sättet är du fel ute. Resultatet borde bli en post per permissionrow, inte fler kolumner.
mvh
11 svar · 377 visningar · startad av Mc Fetto
Jag har följande (ungefär ivf):
tPermission :
PermissionID | Data1 | Data2
--------------------------------------------
1 | bla | bla
tPermissionRow :
ID | PermissionID | RowNo | To | From
----------------------------------------------
1 | 1 | 1 |some | some
2 | 1 | 2 |other|other
Alltså kan en Permission kan ha flera PermissionRow. I mitt fall (2 st)
Jag vill få ut följande :
Data1 | Data2 | To1 | From1 | To1 | To2
där to och from med siffror är respektive från raderna i tPermissionRow.
Hur görs detta?
Om du vill få ut det på det sättet är du fel ute. Resultatet borde bli en post per permissionrow, inte fler kolumner.
mvh
Nej jag är inte fel ute! :)
Hantera det i presentationslagret, om du inte har access där du kan använda TRANSFORM.
LarsG skrev:
Hantera det i presentationslagret, om du inte har access där du kan använda TRANSFORM.
Finns det ingen lösning mha sql då?
Jo, men om du skall hantera godtyckligt antal rader så blir det lite komplicerat och det går inte med alla DBMS heller.
Nej, men om vi antar att det endast är två PermissionRow till en Permission.
select data1,data2,
r1.to as to1,r1.from as from1,
r2.ro as to2,r2.from as from2
from tpermission p
inner join tPermissionRow r1 on p.permissionid = r1.permissionid
inner join tPermissionRow r2 on p.permissionid = r2.permissionid
where r1.rowNo = 1
and r2.rowNo = 2
heter kolumnerna from och to i verkligheten?
LarsG skrev:
heter kolumnerna from och to i verkligheten?
Hehe, nej det gör de inte :h
Ska testa koden så fort jag har en installerad sql-server!
Tack så mycket :bire
För mig betyder "flera" inte "två".
Men om man alltid har ett bestämt antal är det klart att man kan få in allt i samma post genom att joina in samma tabell x antal gånger.
Mvh
@nders skrev:
För mig betyder "flera" inte "två".
Men om man alltid har ett bestämt antal är det klart att man kan få in allt i samma post genom att joina in samma tabell x antal gånger.
Mvh
Jo, kan medge att jag uttryckte mig lite fel. Men det borde ju bara vara att bygga upp sql-strängen dynamiskt för att kunna ta emot fler en till flera relation, om man gör en select count på PermissionsRow först och utifrån resultatet loopar fram satsen. Kanske inte korrekt?
Frågan LarsG gav, är den frågan korrekt för access? (sitter och testar lite mot den) har detta:
select data1,data2,
r1.Tto as to1 ,r1.Ffrom as from1,
r2.Tto as to2 , r2.Ffrom as from2
from Permissions p
inner join PermissionsRow r1 on p.permissionid = r1.permissionid
inner join PermissionsRow r2 on p.permissionid = r2.permissionid
where r1.rowNo = 1 and r2.rowNo = 2
Får syntax fel när jag har två join (fungerar ju meden)
select data1,data2,
r1.Tto as to1 ,r1.Ffrom as from1,
r2.Tto as to2 , r2.Ffrom as from2
from (Permissions p
inner join PermissionsRow r1 on p.permissionid = r1.permissionid)
inner join PermissionsRow r2 on p.permissionid = r2.permissionid
where r1.rowNo = 1 and r2.rowNo = 2