Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abfrage die Zeilen in Spalten umwandelt

Begonnen von max jenne, Januar 21, 2011, 14:36:47

⏪ vorheriges - nächstes ⏩

max jenne

Hallo zusammen,
ich möchte eine Tabelle erstellen die Kombinationsmöglichkeiten aus einer bestimmten Menge an Artikeln hat. Ich versuch das mal an einem Beispiel zu erklären:
Es gibt 12.000 Artikel, pro Auftrag werden im Durchschnitt 4 verschiedene Artikel gemeinsam gekauft.  Jetzt möchte ich eine Tabelle erstellen in der die unterschiedlichen Artikelkombination jeweils eine Möglichkeit darstellen
Auftrag-Nr            Artikel-Nr
1                                 a
1                                  b
1                                  c
1                                  d

2                                  a 
2                                  b
2                                  f

3                                  a
3                                  c
3                                  d       
3                                  f

4                                 a
4                                 b

Diese Auftragsübersicht soll in eine Artikel Kombiübersicht umgeformt werden.

Auftrags-Nr         Artikel 1        Artikel 2           Artikel 3             Artikel 4
1                               a                      b                   c                       d
2                                a                     b                    f
3                                a                    c                      d                      f
4                               a                       b

Also kurz die Spalteninhalte in Zeilen inhalte

Vielen Dank für jegliche Hilfe

oma

Hallo,

mit einer Kreuztabellenabfrage kannst du so etwas darstellen:

TRANSFORM Count(DeineTabelle.Artikel_NR) AS Anzahl
SELECT Auftrags_Nr
FROM DeineTabelle
GROUP BY Auftrags_Nr
PIVOT Artikel_NR


Gruß Oma
nichts ist fertig!

max jenne

Hallo Oma,

ich habe das

TRANSFORM Count[T_Orderlines]
SELECT [Order ID]
FROM [T_Orderlines]
GROUP BY  [Order ID]
PIVOT [Product ID]

jetzt mal in die SQL-Ansichtsform bei der Abfrageerstellung reingeschrieben. da fehlt aber noch die "AS Anzahl" was ist das? Die Anzahl der Datensätze in der Tabelle T-Orderlines?

Gruß Max

oma

Hallo Max,

dann laß es eben weg; das ist nur die Bezeichnung des berechneten Feldes

Gruß Oma
nichts ist fertig!

max jenne

Hallo Oma,
ich habe jetzt mal den einen Teil weggelassen, aber es funktioniert immer noch nicht.
Ich habe noch nie eine Abfrage im SQL erstellt

SELECT
TRANSFORM Count[T_Orderlines] ,
SELECT [Order ID],
FROM [T_Orderlines],
GROUP BY  [Order ID],
FROM PIVOT [Product ID]

So sieht die Abfrage bei mir im Moment aus, funktioniert aber nicht, irgendein Syntaxfehler (fehlender Operator) im Abfrageausdruck TRANSFORM Count[T_Orderlines] fehlt ???
Gruß Max

oma

Hallo Max,

kann jetzt keinen Fehler erkennen; kopiere mal folgenden Code in deine Abfrage

TRANSFORM Count(T_Orderlines.[Product ID]) AS A
SELECT T_Orderlines.[Order ID]
FROM T_Orderlines
GROUP BY T_Orderlines.[Order ID]
PIVOT T_Orderlines.[Product ID]


dann muss das gehen!
Die Feldnamen solltest du zukünftig  nicht mit Leerzeichen (oder andere Sonderzeichen) benennen; statt Order ID besser Order_ID oder OrderID

Gruß Oma
nichts ist fertig!

database

Hallo,

irgendein Syntaxfehler ...

TRANSFORM Count[T_Orderlines] , :o

;)

oma

Hallo,

no, Code ist getestet u. aus DB kopiert
anbei Beispiel in Anlage

Gruß Oma

[Anhang gelöscht durch Administrator]
nichts ist fertig!

database

Hi,

@oma

Der Beistrrich ist beim Fragesteller ZUVIEL -  sieh #4,  deine SQL passt!

Ging um die Beantwortung zu  "... irgendein Syntaxfehler ... "

oma

Hallo,

@peter: ja, jetzt sehe ich das erst, habe bei der Code-Menge (5 Zeilen) das doch glatt übersehen ;)

Gruß Oma
nichts ist fertig!