aximand
Goto Top

PowerBI Variable bei Abfrage gegen IBM DB2

Hallo,

ich beschäftige mich ganz neu mit PowerBI und ich hab jetzt ne Nachtschicht hinter mit mit lesen, lesen, lesen - und ich komm nicht weiter:

Es gibt einen iSeries Server (AS400 / DB2) auf dem Daten liegen.

Diese Daten kann ich über Excel VBA abgreifen:
strsql = "SELECT ADKTO, ADKNAM, ADKA20, ADLND,CAST(ADKRLI AS DEC(14, 2)) KRLI, CAST(IFNULL((SELECT SUM(AKW01) FROM AKO01PF " & _  
        "WHERE AKFA = ADFA And AKABKZ = ADABKZ And AKKTO = ADKTO AND AKFAKT = 0), 0) AS DEC(14, 2)) SUM_AKO, CAST(IFNULL((SELECT SUM(OPBETR) + SUM(OPBTR2) FROM OFP01PF " & _  
        "WHERE OPFA = ADFA AND OPKLS = 'D' AND OPKTO = ADKTO AND OPSHKZ = 'S' AND OPBUDT <= '" & sDat & "' AND (OPAUKZ = ' ' OR OPAUKZ = '*' AND OPBUOP > '" & sDat & "') ), 0) " & _  
        "- (IFNULL((SELECT SUM(OPBETR) + SUM(OPBTR2) FROM OFP01PF WHERE OPFA = ADFA AND OPKLS = 'D' AND OPKTO = ADKTO AND OPSHKZ = 'H' AND OPBUDT <= '" & sDat & "' " & _  
        "AND (OPAUKZ = ' ' OR OPAUKZ = '*' AND OPBUOP > '" & sDat & "')), 0)) AS DEC(14, 2)) SUM_OFP " & _  
        "FROM ADR01PF WHERE ADFA = 1 And ADABKZ = 0 ORDER BY ADKTO"  

Funktioniert einwandfrei, wobei sDat ein vom Anwender in der Tabelle eingegebener Datumswert JJMMTT ist.

Nun möchte ich dieses Excel-Sheet über PowerBI ablösen, habe eine ODBC-Verbindung zu der iSeries und kann die Tabellen abgreifen.
Was mir aber in PowerBI fehlt ist, dass die Daten erst dann abgerufen werden, wenn ich ein Datum eintippe.

Dazu würde ich gerne eine Variable in der Abfrage nutzen, aber ich komm echt nicht weiter face-sad

Sinngemäß nachfolgender Code, wobei v_Datum dann das Datum ist, was ich eintippen möchte:

declare v_Datum varchar
SELECT ADKTO, ADKNAM, ADKA20, ADLND,CAST(ADKRLI AS DEC(14, 2)) KRLI, CAST(IFNULL((SELECT SUM(AKW01) FROM AKO01PF 
 WHERE AKFA = ADFA And AKABKZ = ADABKZ And AKKTO = ADKTO AND AKFAKT = 0), 0) AS DEC(14, 2)) SUM_AKO, CAST(IFNULL((SELECT SUM(OPBETR) + SUM(OPBTR2) FROM OFP01PF 
 WHERE OPFA = ADFA AND OPKLS = 'D' AND OPKTO = ADKTO AND OPSHKZ = 'S' AND OPBUDT <=  v_Datum AND (OPAUKZ = ' ' OR OPAUKZ = '*' AND OPBUOP > v_Datum) ), 0) - (IFNULL((SELECT SUM(OPBETR) + SUM(OPBTR2) FROM OFP01PF  
 WHERE OPFA = ADFA AND OPKLS = 'D' AND OPKTO = ADKTO AND OPSHKZ = 'H' AND OPBUDT <= v_Datum  
 AND (OPAUKZ = ' ' OR OPAUKZ = '*' AND OPBUOP > Datum)), 0)) AS DEC(14, 2)) SUM_OFP  
 FROM ADR01PF WHERE ADFA = 1 And ADABKZ = 0 ORDER BY ADKTO

Content-Key: 652462

Url: https://administrator.de/contentid/652462

Printed on: April 26, 2024 at 06:04 o'clock