JudAD
Fleissiger Benutzer
- Beiträge
- 71
Hallo,
ich verzweifele gerade an einer Abfrage. Ich habe in einer Tabelle 2 Felder die ich beide ausgeben möchte.
DocNum Quantity
13077970 1
13077971 12
13077980 1
13077981 1
13077982 1
13077983 1
13077984 1
13077985 1
13077986 1
13077987 1
13077988 3
13077989 2
13077990 1
Jetzt möchte ich eine Abfrage generieren, der mir beginnend mit der kleisnten DocNum die Mengen zusammenzählt und nur die Datensätze ausgibt die in Summe einen bestimmten Wert nicht überschreiten.
DECLARE
@i int,
@menge int,
@kdnr int,
@itemcode varchar
set @menge = 20
set @itemcode = 'EP'
set @kdnr = 11048
WHILE (@i < @menge)
BEGIN
select ODLN.DocNum, DLN1.Quantity as Quantity from DLN1
join ODLN on DLN1.DocEntry = ODLN.DocEntry
join OITM on DLN1.ItemCode = OITM.ItemCode
where ODLN.DocDate > '2016-02-01 00:00:00.000' and ODLN.CardCode = @kdnr and DLN1.LineStatus != 'C' and DLN1.ItemCode = @itemcode
set @i = @i + DLN1.Quantity
END
Ausgabe sollte bei obigen Parametern folgende sein:
DocNum Quantity
13077970 1
13077971 12
13077980 1
13077981 1
13077982 1
13077983 1
13077984 1
13077985 1
Irgenwie bekomm ich das nicht hin.
Geht das überhaupt mit While oder benötige ich einen cursor und wenn ja, wie eürde der aussehen.
Danke vorab
ich verzweifele gerade an einer Abfrage. Ich habe in einer Tabelle 2 Felder die ich beide ausgeben möchte.
DocNum Quantity
13077970 1
13077971 12
13077980 1
13077981 1
13077982 1
13077983 1
13077984 1
13077985 1
13077986 1
13077987 1
13077988 3
13077989 2
13077990 1
Jetzt möchte ich eine Abfrage generieren, der mir beginnend mit der kleisnten DocNum die Mengen zusammenzählt und nur die Datensätze ausgibt die in Summe einen bestimmten Wert nicht überschreiten.
DECLARE
@i int,
@menge int,
@kdnr int,
@itemcode varchar
set @menge = 20
set @itemcode = 'EP'
set @kdnr = 11048
WHILE (@i < @menge)
BEGIN
select ODLN.DocNum, DLN1.Quantity as Quantity from DLN1
join ODLN on DLN1.DocEntry = ODLN.DocEntry
join OITM on DLN1.ItemCode = OITM.ItemCode
where ODLN.DocDate > '2016-02-01 00:00:00.000' and ODLN.CardCode = @kdnr and DLN1.LineStatus != 'C' and DLN1.ItemCode = @itemcode
set @i = @i + DLN1.Quantity
END
Ausgabe sollte bei obigen Parametern folgende sein:
DocNum Quantity
13077970 1
13077971 12
13077980 1
13077981 1
13077982 1
13077983 1
13077984 1
13077985 1
Irgenwie bekomm ich das nicht hin.
Geht das überhaupt mit While oder benötige ich einen cursor und wenn ja, wie eürde der aussehen.
Danke vorab