Yo Gasten,
Ik heb een query om te kijken hoevaak bepaalde combinaties voorkomen per maand voor een jaar. Mijn query werkt in principe perfect, echter zit ik nog met het volgende probleem:
Wanneer bepaalde categorieën waar ik op group in een jaar niet voorkomen dan krijg ik deze categorieën niet te zien in mijn resultaten. (Logisch natuurlijk omdat ik gebruik maak van een inner join) Nu dacht ik dat dit niet zo'n probleem zou zijn, als ik een right join gebruik op de tabel met de categorieën zou ik gewoon alles moeten krijgen. Echter is dit niet mogelijk in MS Access. Ik krijg dan een foutmelding dat ik een ongeldige join gebruik.
Hieronder mijn originele query:
Het gaat om deze join:
Ik zou dus al die PlanKindID's in mijn resultaat willen hebben, maar krijg nu natuurlijk alleen die planKindID's die een CustomerID overeenkomstig hebben vanuit de eerste selectie.
Iemand hier een idee? Alvast super bedankt!
Groeten Pheanix
Ik heb een query om te kijken hoevaak bepaalde combinaties voorkomen per maand voor een jaar. Mijn query werkt in principe perfect, echter zit ik nog met het volgende probleem:
Wanneer bepaalde categorieën waar ik op group in een jaar niet voorkomen dan krijg ik deze categorieën niet te zien in mijn resultaten. (Logisch natuurlijk omdat ik gebruik maak van een inner join) Nu dacht ik dat dit niet zo'n probleem zou zijn, als ik een right join gebruik op de tabel met de categorieën zou ik gewoon alles moeten krijgen. Echter is dit niet mogelijk in MS Access. Ik krijg dan een foutmelding dat ik een ongeldige join gebruik.
Hieronder mijn originele query:
code:
1
2
3
4
5
6
7
8
| TRANSFORM count(BR.br_datum)
SELECT TR_Desc.Description, count(BR.br_datum) AS Totaal
FROM ((SELECT DISTINCT CustomerID, max(DateTime) AS [br_datum] FROM Planner WHERE PlanKindID IN (46,52,53,76,123,124) GROUP BY CustomerID) AS BR
INNER JOIN (SELECT DISTINCT CustomerID, PlanKindID, DateTime FROM Planner WHERE PlanKindID IN(33,34,47,49,50,54,55,62,63,64,65,66,67,75,107,119,120,121)) AS TR ON BR.CustomerID = TR.CustomerID)
INNER JOIN (SELECT PlanKindID, Description FROM PlanKind) AS TR_Desc ON TR.PlanKindID = TR_Desc.PlanKindID
WHERE Year(BR.br_datum) = 2008 AND BR.br_datum < TR.DateTime
GROUP BY TR_Desc.Description
PIVOT format(BR.br_datum,"mmm") IN ("jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"); |
Het gaat om deze join:
code:
1
| INNER JOIN (SELECT DISTINCT CustomerID, PlanKindID, DateTime FROM Planner WHERE PlanKindID IN(33,34,47,49,50,54,55,62,63,64,65,66,67,75,107,119,120,121)) AS TR ON BR.CustomerID = TR.CustomerID) |
Ik zou dus al die PlanKindID's in mijn resultaat willen hebben, maar krijg nu natuurlijk alleen die planKindID's die een CustomerID overeenkomstig hebben vanuit de eerste selectie.
Iemand hier een idee? Alvast super bedankt!
Groeten Pheanix