Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[SQL/ACCESS] Combineren van kolommen in pivot-table

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende code:


code:
1
2
3
4
5
6
TRANSFORM Count(Rapportdata.[ordernr]) AS AantalVanordernr
SELECT Rapportdata.[week], Count(Rapportdata.[ordernr]) AS [Totaal Opmerkingen]
FROM Rapportdata
WHERE teller=1
GROUP BY Rapportdata.[week]
PIVOT Rapportdata.[model]


Deze genereert een tabel met een aantal kolommen voor de verschillende waarden van 'model' en een rij voor elk weeknummer. In de cel staat het aantal unieke orders van een bepaald model in de betreffende week (waarvoor teller = 1).

Nu wil ik echter alle modellen in twee groepen combineren en deze als kolommen weergeven. Dus model 1, model 2 en model 3 worden groep 1, en model 4 en model 5 worden groep 2.

En dan dus de totalen (aantal unieke orders op week) weergeven voor groep 1 en groep 2.

Hoe kan ik dit bereiken?

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Doe bijvoorbeeld iets met '(model-1)\3+1 AS groep', '-(model>3)+1 AS groep' of 'iif(model<4,1,2) AS groep'

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Verwijderd

Topicstarter
Bedankt, maar ik kom er nog niet helemaal uit.

De namen van de modellen bestaan namelijk niet alleen uit nummers maar zijn gewone namen (tekst). Sorry dat ik dat niet duidelijk had gemaakt.

  • pedorus
  • Registratie: Januari 2008
  • Niet online
In dat geval zou ik een tabel maken die modellen naar groepen mapt, en daar op joinen. Is model wel een id, of komt dezelfde string gewoon lekker vaak voor in de database? Dat lijkt me dan gelijk iets om aan te pakken.

(Het kan natuurlijk wel direct, oa met iif(model in ('...','...',...),1,2), maar dit is toch meer een probleem met het datamodel lijkt me.)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Verwijderd

Topicstarter
Nee model is geen id, er is een ordernummer en het order betreft altijd een bepaald model. Er zijn slechts een paar modellen, dus die komen allemaal vaker voor. Dit is een direct afspiegeling van de realiteit dus kan dit moeilijk gaan aanpassen.

Wat je noemt IIF(model IN ('naam1','naam2','naam3'),1,2) zou geschikt kunnen zijn, maar hoe kan ik dit het beste in mijn code passen? (sorry, ik ben een beginner ;))

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Verwijderd schreef op dinsdag 22 juli 2008 @ 14:15:
Nee model is geen id, er is een ordernummer en het order betreft altijd een bepaald model. Er zijn slechts een paar modellen, dus die komen allemaal vaker voor. Dit is een direct afspiegeling van de realiteit dus kan dit moeilijk gaan aanpassen.
Er is hier dus 2x een een-op-meer relatie. 1 groep bevat meer modellen, waaraan meer orders gekoppeld (kunnen) zijn. Normaal gesproken maak je dan eerst een tabel groepen(groepId,groepsNaam). Daarna maak je een tabel modellen(modelId,modelNaam,groepId), en in Excel kun je voor groepId de zogenaamde 'Lookup wizard' gebruiken als type. Vervolg maak je een tabel orders(...,...,modelId).

Als je dan een query maakt met die 3 tabellen, en daar de pivottable wizard op los laat komt het vanzelf goed.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten

Pagina: 1