Problem ist, dass Datenbank einige Werte fehlt und ich sie in der Kreuztabellenabfrage mit dem nächsten suchen muss.ACCESS - Kreuztabellenabfrage - nächste Übereinstimmung
Die Tabelle, die ich Crosstab scheint wie folgt aus:
Es hat Werte für Mitbewerberpreise fehlt - 111 Zum Artikel Ich habe nicht Preis für die 3. Woche für den ersten Wettbewerber und für die 2. Woche 2. Konkurrent. Bei Artikel 222 verpasse ich den 2. Wochenpreis für den 1. Teilnehmer und den 1. Preis für den 2. Teilnehmer. Ich möchte den nächsten Wochenpreis in meinen Ausgabedaten verwenden.
Ausgang (für die Preisindexberechnung) wie folgt aussehen muss (Mitbewerberpreise in Spalten, um Berechnungen weiter in Pivot-Tabelle in Excel zu machen):
Die Frage ist, wie man "Lookup" nächste Woche Konkurrenten Preise, markierte ich fehlende Preise in Orange.
Ich hoffe das Problem ist klar, bei Fragen - bitte fragen, ich werde versuchen, alles zu klären! Vielen Dank im Voraus!
Upd. ich versuche, es in der folgenden Art und Weise zu tun (mit Unterabfrage):
SELECT m_week, item_code, my_price, (SELECT TOP 1 com_price
FROM MyTable AS T
WHERE T.item_code = MyTable.item_code
AND T.m_week <= MyTable.m_week
AND competotor_id = 1
ORDER BY T.m_week) AS Comp1_price, (SELECT TOP 1 com_price
FROM MyTable AS T
WHERE T.item_code = MyTable.item_code
AND T.m_week <= MyTable.m_week
AND competotor_id = 2
ORDER BY T.m_week) AS Comp2_price
... the same for each competitor
FROM MyTable
Es funktioniert .. aber sehr langsam und ich brauche für jeden Teilnehmer zum Kopieren/Einfügen. Das nächste, was - ich will die Preise nur suchen, nicht nach unten, sondern auch nach oben (entlang der Wochen)
Grüße und danke! Aber als ich deine Antwort gelesen habe, habe ich gemerkt, dass ich Fehler in der Problembeschreibung gemacht habe. Ich habe eigentlich keine Zeilen mit fehlenden Preisen und ich denke, dass es die erste Frage verkompliziert. –
Vielleicht kann ich irgendwie nz() -Funktion in die Kreuztabellenabfrage hinzufügen. Nun scheint es so 'TRANSFORM Avg (p.com_price) SELECT p.m_week, p.item_code, p.my_price VON MyTable als p GROUP BY p.m_week, p.item_code, p.my_price PIVOT p.competitor_id' –