Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[Access] Kruistabelquery

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.