In Diskussion For Schleife über Abfrage

samuila

Aktives Mitglied
1. März 2022
7
0
Guten Abend,

weiß jemand wie ich hier eine for Schleife drüber legen kann?
Leider komme ich hier nicht weiter ...

Code:
{% capture sqlquery -%}
SELECT Versand.lvLieferschein.cAnmerkung
FROM Versand.lvLieferschein
WHERE dVersendet BETWEEN DATEADD(YEAR, DATEDIFF(YEAR, '19000101', GETDATE()), '19000101') AND GETDATE()+1 /* Filter Heute */
{% endcapture -%}
{% assign offeneAuftraege = sqlquery | DirectQueryScalar -%}
{{ offeneAuftraege }}

vielen dank.

vg
 

samuila

Aktives Mitglied
1. März 2022
7
0
Danke mvh.
Läuft auch, allerdings fehlen ja noch die Abfragen bzw. Bedingugen:
"WHERE dVersendet BETWEEN DATEADD(day, DATEDIFF(day, '19000101', GETDATE()), '19000101') AND GETDATE()+1 /* Filter Heute */"

Kann man das nicht integrieren?
Es sollen nur die heute versendeten angezeigt werden.
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
1.057
397
Danke mvh.
Läuft auch, allerdings fehlen ja noch die Abfragen bzw. Bedingugen:
"WHERE dVersendet BETWEEN DATEADD(day, DATEDIFF(day, '19000101', GETDATE()), '19000101') AND GETDATE()+1 /* Filter Heute */"

Kann man das nicht integrieren?
Es sollen nur die heute versendeten angezeigt werden.
Versuche es mit DATEDIFF(day,dVersendet,GETDATE())=0 und beachte, cAnmerkung kann auch NULL sein.
oder performanter: dVersendet >= CAST(GETDATE() as date) AND dVersendet < CAST(GETDATE()+1 as date)
oder wenn es unbedingt mit BETWEEN sein muss: BETWEEN DATEADD(day,DATEDIFF(day,0,GETDATE()),0) AND DATEADD(day,DATEDIFF(day,0,getdate()),1)
 
Zuletzt bearbeitet:

samuila

Aktives Mitglied
1. März 2022
7
0
So?
Es soll auch nur bei dem jeweiligen Kunden sein, sprich seine Aufträge.

Code:
{% assign offeneAuftraege = sqlquery | DirectQuery -%}
{% for item in offeneAuftraege.Daten -%}
WHERE dVersendet >= CAST(GETDATE() as date) AND dVersendet < CAST(GETDATE()+1 as date)
{{item.cAnmerkung}}
{% endfor -%}


So war die ursprüngliche Abfrage bzw. das wird benötigt:
Code:
SELECT Versand.lvLieferschein.cAnmerkung
FROM Versand.lvLieferschein
WHERE dVersendet BETWEEN DATEADD(YEAR, DATEDIFF(YEAR, '19000101', GETDATE()), '19000101') AND GETDATE()+1 /* Filter Heute */
AND cKundeNr = '{{ Vorgang.Stammdaten.Kunde.Kundennummer }}' /* Kundennummer */
AND nRechnungStatus = 0 /*ohne Rechnung */
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
1.057
397
So?
Es soll auch nur bei dem jeweiligen Kunden sein, sprich seine Aufträge.

Code:
{% assign offeneAuftraege = sqlquery | DirectQuery -%}
{% for item in offeneAuftraege.Daten -%}
WHERE dVersendet >= CAST(GETDATE() as date) AND dVersendet < CAST(GETDATE()+1 as date)
{{item.cAnmerkung}}
{% endfor -%}


So war die ursprüngliche Abfrage bzw. das wird benötigt:
Code:
SELECT Versand.lvLieferschein.cAnmerkung
FROM Versand.lvLieferschein
WHERE dVersendet BETWEEN DATEADD(YEAR, DATEDIFF(YEAR, '19000101', GETDATE()), '19000101') AND GETDATE()+1 /* Filter Heute */
AND cKundeNr = '{{ Vorgang.Stammdaten.Kunde.Kundennummer }}' /* Kundennummer */
AND nRechnungStatus = 0 /*ohne Rechnung */
Falsch.
Du verwechselst SQL-Abfrage und DotLiquid
So soll es sein:
Code:
SELECT Versand.lvLieferschein.cAnmerkung
FROM Versand.lvLieferschein
WHERE dVersendet >= CAST(GETDATE() as date) AND dVersendet < CAST(GETDATE()+1 as date)/* Filter Heute */
AND cKundeNr = '{{ Vorgang.Stammdaten.Kunde.Kundennummer }}' /* Kundennummer */
AND nRechnungStatus = 0 /*ohne Rechnung */

Code:
{% assign offeneAuftraege = sqlquery | DirectQuery -%}
{% for item in offeneAuftraege.Daten -%}
{{item.cAnmerkung}}
{% endfor -%}
 

samuila

Aktives Mitglied
1. März 2022
7
0
Falsch.
Du verwechselst SQL-Abfrage und DotLiquid
So soll es sein:
Code:
SELECT Versand.lvLieferschein.cAnmerkung
FROM Versand.lvLieferschein
WHERE dVersendet >= CAST(GETDATE() as date) AND dVersendet < CAST(GETDATE()+1 as date)/* Filter Heute */
AND cKundeNr = '{{ Vorgang.Stammdaten.Kunde.Kundennummer }}' /* Kundennummer */
AND nRechnungStatus = 0 /*ohne Rechnung */

Code:
{% assign offeneAuftraege = sqlquery | DirectQuery -%}
{% for item in offeneAuftraege.Daten -%}
{{item.cAnmerkung}}
{% endfor -%}
Wo ist dann bei DotLiquid die Abfrage bzw. Einschränkung auf:
WHERE dVersendet >= CAST(GETDATE() as date) AND dVersendet < CAST(GETDATE()+1 as date)/* Filter Heute */
AND cKundeNr = '{{ Vorgang.Stammdaten.Kunde.Kundennummer }}' /* Kundennummer */
AND nRechnungStatus = 0 /*ohne Rechnung */

Sprich das es die heutigen sind, nur von dem Kunden und vor allem ohne Rechnung.
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
1.057
397
Die Einschränkung ist in SQL in capture sqlquery:
{% capture sqlquery -%}
SELECT Versand.lvLieferschein.cAnmerkung
FROM Versand.lvLieferschein
WHERE dVersendet >= CAST(GETDATE() as date) AND dVersendet < CAST(GETDATE()+1 as date)/* Filter Heute */
AND cKundeNr = '{{ Vorgang.Stammdaten.Kunde.Kundennummer }}' /* Kundennummer */
AND nRechnungStatus = 0 /*ohne Rechnung */
{% endcapture -%}
 

Ähnliche Themen