Registriert seit: 8. Mai 2005
366 Beiträge
Delphi XE3 Enterprise
|
Abfrage mit dynamischen Spaltename
13. Jul 2015, 12:29
Datenbank: Firebird • Version: 2.5 • Zugriff über: Zeos
Hallo,
gibt es eine Möglichkeit den Spaltennamen in einem SQL-Statement, welches ich in eine Query über SQL.loadfromfile( einlesen möchte dynamisch zu definieren .
Im konkreten Beispiel möchte das ich eine Auswertung über die letzte 6 Wochen starten und die KW in der Spaltenüberschrift sehen wollen.
Code:
SELECT
ARTIKEL.ARTIKEL_ID,
SUM( case when ORDERS.DATUM between dateadd( week , -1 , current_date ) and dateadd( week , -0 , current_date ) then ORD_ARTIKEL.ARTIKEL_MENGE else 0 end ) AS Anz_1,
SUM( case when ORDERS.DATUM between dateadd( week , -2 , current_date ) and dateadd( week , -1 , current_date ) then ORD_ARTIKEL.ARTIKEL_MENGE else 0 end ) AS Anz_2,
SUM( case when ORDERS.DATUM between dateadd( week , -3 , current_date ) and dateadd( week , -2 , current_date ) then ORD_ARTIKEL.ARTIKEL_MENGE else 0 end ) AS Anz_3,
SUM( case when ORDERS.DATUM between dateadd( week , -4 , current_date ) and dateadd( week , -3 , current_date ) then ORD_ARTIKEL.ARTIKEL_MENGE else 0 end ) AS Anz_4,
SUM( case when ORDERS.DATUM between dateadd( week , -5 , current_date ) and dateadd( week , -4 , current_date ) then ORD_ARTIKEL.ARTIKEL_MENGE else 0 end ) AS Anz_5,
SUM( case when ORDERS.DATUM between dateadd( week , -6 , current_date ) and dateadd( week , -5 , current_date ) then ORD_ARTIKEL.ARTIKEL_MENGE else 0 end ) AS Anz_6,
FROM
ORDERS
INNER JOIN ARTIKEL
ON ORDERS.ARTIKEL_ID = ARTIKEL.ARTIKEL_ID
WHERE
ORDERS.Datum BETWEEN dateadd(week,-6,current_date)and dateadd(week,-1,current_date)
GROUP BY
ARTIKEL.ARTIKEL_ID,
mfg wf
|
|
Zitat
|