Vraag & Antwoord

Programmeren

[Access] Kruistabelquery

Anoniem
MichielPH
3 antwoorden
  • Hey,

    Ik heb 3 tabellen: 1 met producten, 1 met hulpstukken en 1 waar ze naar elkaar worden verwezen.

    Stel je voor dat ze als volgt gevuld zijn:
    [code:1:6a1d62dfb3]ID NAAM
    1 Wekker
    2 Muis[/code:1:6a1d62dfb3][code:1:6a1d62dfb3]ID NAAM
    A Hamer
    B Schroevendraaier[/code:1:6a1d62dfb3]
    Tevens staat in de 3e tabel:[code:1:6a1d62dfb3]ProductID ToolID WAARDE
    1 A 1
    1 B 2
    2 A 2[/code:1:6a1d62dfb3]Dit betekent dat de wekker een hamer en 2 schroevendraaiers nodig heeft. Om een muis te maken heb je hier 2 hamers nodig.

    Als rijkoppen krijg ik de beschrijvingen v/d producten, omdat ik die laat opzoeken in de koppel-tabbel. Bij de kolomkoppen krijg ik de ToolID's te zien, terwijl ik deze ook op laat zoeken in de tabel.

    Als ik rij- en kolom omdraai, dan krijg ik ProductID's te zien. Het ligt dus aan de kolomkoppen. Hoe los ik dit op?
  • Wat voor query gebruik je nu dan? Als ik onderstaande gebruik, zie ik gewoon productnamen en hulpstuknamen.

    TRANSFORM Sum(ProductTools.Waarde) AS SumOfWaarde
    SELECT Producten.Naam
    FROM Tools INNER JOIN (Producten INNER JOIN ProductTools ON Producten.ID = ProductTools.ProductID) ON Tools.ID = ProductTools.ToolID
    GROUP BY Producten.Naam
    PIVOT Tools.Naam;

    [code:1:fe2aeeaf6e]
    Naam Hamer Schroevendraaier
    Muis 2
    Wekker 1 2
    [/code:1:fe2aeeaf6e]
  • Als ik jouw stuk SQL gebuik, krijg ik enkel een kolomkop met daarin 'Omschrijving'. Als ik het volgende gebruikende staan er ProductID's, wat logisch is:[code:1:c057c6c64a]TRANSFORM Sum(tblKoppel.Waarde) AS SomVanWaarde
    SELECT tblKoppel.ProductID
    FROM tblFeeders INNER JOIN tblKoppel ON tblFeeders.ID = tblKoppel.FeederID
    GROUP BY tblKoppel.ProductID
    PIVOT tblFeeders.Omschrijving;[/code:1:c057c6c64a][size=9:c057c6c64a]ProductTools = tblKoppel, Tools = tblFeeders, Naam = Omschrijving[/size:c057c6c64a]

    Als ik de éénnalaatste zin vervang door bv. [i:c057c6c64a]GROUP BY tblKoppel.ProductID = tblProducten.ID[/i:c057c6c64a] (ook andersom) krijg ik de melding dat 'tblProducten.ID' geen geldige expressie is.

    Als ik het stuk SQL kopieër en de tabellen erbij maak, doet ie het perfect. *Confused*

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.