HEj alla, Du skriver Det du ska använda för att få en lite mer generell sql-fråga (om du alltså inte vill hårdkoda fältnamnen) är Pivot-funktionerna i Access. Kolla upp kommandona TRANSFORM och PIVOT så är du på rätt spår. SQL-frågan blir dessutom lite smidigare och mer lättläst om du använder alias för dina tabeller, så att du slipper skriva ut tabellnamn varje gång du anger ett fält: jaha, där ser man... tack alla, ska testa era svar!SQL-fråga/db-modellering
Tänkte göra en C#-applikation mot en Access-db, som ska lagra alla uppgifter man sparat på sig: bankinformation, webadresser, pinkoder, etc. Jag vet att det finns en massa freeware/shareware, men det är roligare att göra det själv och kanske lära sig något nytt på kuppen! :-)
Först lite bakgrund:
Features i mitt lilla program:
* varje kategori har ett par textfält med specade fältnamn. (t ex kategori 'Bank' har fältnamn: 'Bank', 'Kontonr', 'Pinkod', etc...)
* man kan skapa en egen kategori, och speca egna fältnamn
* skapar man en post, ska postfältnamn ändras dynamiskt när man väljer om kategoritillhörigheten på posten
* man kan skapa en post som 'unfiled'-kategori eller namngiven kategori
så därför tänkte jag ha:
* en tabell med alla kategorinamn. Samtliga fält är strängar. Tabellnamn: Kategorinamn
* en tabell med alla kategorifältnamn för alla kategorier. Samtliga fält är strängar. Tabellnamn: Kategorifältnamn
* en tabell med alla poster, dvs postdata som mappas mot kategorierna och kategorifältnamn. Samtliga fält är strängar. Tabellnamn: Dataposter
(ska jag ha någon mellantabell?)
Men hur ställer jag SQL-frågan, så att 'headers' i listan är kategorifältnamn? Som det är nu får jag headers som 'Fältnamn1', 'Fältnamn2' - när jag vill ha dem som 'Bank', 'Kontonr', 'Pinkod'.
en SQL-sats som jag fick till via Access är följande:
SELECT Kategorifältnamn.fältnamn1, Kategorifältnamn.fältnamn2, Kategorifältnamn.fältnamn3, Kategorifältnamn.fältnamn4, Kategorifältnamn.fältnamn5 FROM Kategorifältnamn INNER JOIN (Kategorinamn INNER JOIN Kategoriposter ON Kategorinamn.idNr = Kategoriposter.idNr) ON (Kategorifältnamn.idNr = Kategorinamn.idNr) AND (Kategorifältnamn.idNr = Kategoriposter.idNr) WHERE (((Kategorinamn.Kategorinamn)='Webbplatser'));
finns det verkligen ingen smidigare SQL-sats än ovanstående?? :-)
/kr.Sv: SQL-fråga/db-modellering
SELECT Kategorifältnamn.fältnamn1 AS Bank
och så vidare för att få dem i de namn du vill haSv: SQL-fråga/db-modellering
/PelleSv: SQL-fråga/db-modellering
<CODE>
SELECT KFN.fältnamn1, KFN.fältnamn2
FROM Kategorifältnamn KFN
...
</CODE>Sv: SQL-fråga/db-modellering
Tack för hjälpen!
/kr.