Jag och en kompis sitter och klurar på hur vi i Access ska skriva SQL kod för att få fram ett resultat som i motsvarande T-SQL är en minor task. För att jag skulle slippa bygga om den lösning det skall implementeras på. Skappa en tabell med fälten med fälten User och Roles. Tänk på att tilåta strängar med noll i längd. Annars kommer den klaga. Skapa en sammanfattande Query
Jag har tre tabeller som heter Users, UserRoles samt Roles.
UserRoles är en mellantabell för att ge en User tillgång till flera roller.
Frågan som vi vill skriva ska visa svaret som typ:
User | Roles
-----------------
Olle | Admin,Author
Alltså User visar Olle samt Roles visas kommaseparerade
Med den uppställning vi har nu så visas tyvärr resultatet på detta sätt:
User | Roles
-----------------
Olle | Admin
Olle | Author
Nån som har ett koolt tips om hur vi tweakar om vyn?
JockeSv: Skapa en sammanfattande Query
Sorry för det enkla svaret men så ser verkligheten ut i detta fall. Jag har själv frågat om det är ok att göra om vissa saker.
JockeSv: Skapa en sammanfattande Query
För att sammanställa resultat. Töm först temptabellen:
DELETE *
FROM TempTabell;
Infoga önskade användare in den:
INSERT INTO TempTabell ( [User], Roles )
SELECT Users.User, ''
FROM Users;
Sedan är det bara att köra en uppdate fråga:
UPDATE TempTabell INNER JOIN (Roles INNER JOIN UserRoles ON [Roles].[Role]=[UserRoles].[Role]) ON [TempTabell].[User]=[UserRoles].[User] SET TempTabell.Roles = [TempTabell].[Roles] & ', ' & [Roles].[Role];
Eftersom du inte beskrivit reationen mellan tabellerna gissar jag bara på deras relationer.