Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1468to1472
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ADODB: Variabler Spaltenname in SQL-Statement

ADODB: Variabler Spaltenname in SQL-Statement
25.01.2016 20:19:56
Alex
N'abend zusammen,
ich hab mal wieder eine Frage aus dem SQL-Universum. Ist eigentlich ein generelles SQL-Problem, aber da das Office-Bordmittel ADODB zudem einen sehr eigenen SQL-Dialekt spricht, passt es hier sicher ganz gut...
Ziel der ganzen Übung: Umsätze pro Mitarbeiter und Jahr ausgeben lassen, zusätzlich die Direktion in dem entsprechenden Jahr.
Ich habe dazu folgende drei Tabellen:
Tabelle 1 (Mitarbeiter/Direktion): "MAZuordn"
MA1         Direktion DirVon DirBis
Alfred      Süd       2000   2001
Alfred      Nord      2002   2016
Bertram     Süd       2001   2016
Tabelle 2 (Mitarbeiter/Umsätze): "MAUmsatz"
MA2         J2000 J2001 J2002 J2003 J2004 ...
Alfred      500   600   600   700   650
Bertram       0   600   600   700   650
Tabelle 3 (Jahre): "MapJahre"
JahrNum JahrSpalte
2000    J2000
2001    J2001
2002    J2002
2003    J2003
2004    J2004
Tabelle 2 [MAUmsatz] ist natürlich nicht schön für SQL-Zwecke und wäre mir auch flach lieber (MA2|Jahr|Umsatz). Da ich die Daten aber sehr oft und in genau dieser Struktur neugeliefert bekomme, möchte ich sie aber nicht jedes Mal selbst "verflachen", sondern einfach nur einkopieren. Will heißen: Tabelle 2 muss so bleiben, wie sie ist. Einziger Zweck von Tabelle 3 [MapJahre] ist daher, zu einem bestimmten Jahr die "Jahresspalte" in [MAUmsatz] zu finden.
Statement:
SELECT tZuo.MA1,tJhr.JahrNum,tZuo.Direktion,(SELECT tMap.JahrSpalte FROM [MapJahre$] AS tMap WHERE tMap.JahrNum=tJhr.JahrNum) AS UmsatzJahr FROM ([MAZuordn$] AS tZuo INNER JOIN [MAUmsatz$] AS tUms ON tZuo.MA1=tUms.MA2),[MapJahre$] AS tJhr WHERE tZuo.DirVon=tJhr.JahrNum ORDER BY tZuo.MA1,tJhr.JahrNum
Resultierender Fehler: Es wird nicht die Spalte J20xx abgegriffen, sondern nur der Spaltenname wird hart eingefügt:
MA1          JahrNum  Direktion  UmsatzJahr
Alfred       2000     Süd        J2000
Alfred       2001     Süd        J2001
Alfred       2002     Nord       J2002
Alfred       2003     Nord       J2003
Alfred       2004     Nord       J2004
Bertram      2001     Süd        J2001
Bertram      2002     Süd        J2002
Bertram      2003     Süd        J2003
Bertram      2004     Süd        J2004
Wie muss ich das innere Select-Statement anpassen/umschreiben, damit in UmsatzJahr tatsächlich die Jahresumsätze aus Tabelle 2 [MAUmsatz] stehen? tUms.(...) ist es jedenfalls nicht, tUms.COLUMN(...) auch nicht.
Viele Grüße
Alex

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
doppelt s. oben (owT)
26.01.2016 08:10:05
EtoPHG

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige