cancel
Showing results for 
Search instead for 
Did you mean: 

Query String für Lagerbestand nach Losnummern gesucht

Former Member
0 Kudos

Ich möcte eine Abfrage haben, bei der mir alle Artikel nach Lägern sortiert mit deren Mengen nach deren Losnummern aufgelistet werden.

Dazu sollten noch die Spalten ItemName und FrgnName aus der OITM Tabelle mit aufgelöst werden. Eventuell auch nur mit der Selektionsmöglichkeit eines Lagers.

Sollte so aussehen.

ItemCode |  ItemName | FrgnName | Whs | BatchCode | Whs | Qty

123            AAA           XXX             02       1111            1       5000

123            AAA           XXX             02        222             1       1000

234            BBB          BBB            01        111             2        200

usw.

Kann mir da jemand helfen  ?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hallo,

Chargenabfragen sind in SAPB1 seit Umstellung auf 8.8 nicht mehr ganz so einfach. In Deinem Fall würde ich deshalb vorschlagen, nimm die OIBT (gibt es nur noch als View, für Dich aber geeignet), verknüpft mit der OITM. Ist dann sehr einfach.

Lösungsansatz:

SELECT *  FROM OIBT T0  INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode

hdh

Andreas

Former Member
0 Kudos

Danke,

Hab die Frage gestern Abend zu schnell geschrieben und mich heute Morgen mal intensiv damit beschäftigt und auch die OIBT Tabelle gefunden.

Habe das jetzt so gemacht:

select

T1.ItemCode,

T3.TreeType,

T3.ItemName,

T3.FrgnName,

T5.ItmsGrpNam as ItemGroup,

T4.Descr as Brand,

T6.Descr as SalesGroup, 

T1.BatchNum,

T2.WhsName,

T1.Quantity,

T3.LastPurPrc,

T1.Quantity * T3.LastPurPrc as Total,

T3.LastPurCur

from OIBT T1

left join OWHS T2

on T1.WhsCode = T2.WhsCode

left join OITM T3

on T1.ItemCode = T3.ItemCode

left join UFD1 T4

on T3.U_Item_Sales = T4.FldValue

and T4.TableID = 'OITM'

and T4.FieldID = '15'

left join OITB T5

on T3.ItmsGrpCod = T5.ItmsGrpCod

left join UFD1 T6

on T3.U_Item_Sales = T6.FldValue

and T6.TableID = 'OITM'

and T6.FieldID = '15'

where T1.Quantity > 0

Former Member
0 Kudos

Hab den Thread noch mal als nicht beantwortet markiert, denn vielleicht kann mir jemand helfen um das noch zu verfeinern. Die obige Abfrage funktionert prima und ich habe dann eine Excelliste mit dem Ergebnis. Danach lasse ich eine Schleife über die Exelliste laufen und für für jede Zeile, bei der der TreeType "P" ist noch anhand der Losnummer die Auftragsdaten aus den Produktionsaufträgen hinzu. Vielleicht gibt es ja eine Möglichkeit beides zu verknüpfen, damit ich das VBA Makro in Excel sparen kann und das gewünschte Komplettergebnis aus der DB bekomme.

Dies ist mein VBA Code dafür, welcher über eine For/Next Schleife über alle Zeilen läuft.

Die Spalte Comments aus der OWOR ist gleich der BatchNum aus der OIBT

LetzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

LetzteSpalte = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column

For i = 1 To LetzteZeile

If Cells(i, 2).Value = "P" Then

   Set rs = CreateObject("ADODB.Recordset")

  strSQL = "select T1.ItemCode, T1.Comments, T1.U_P_r_n, T1.DueDate, T1.PlannedQty, T1.CardCode, T2.CardName as Customer from OWOR " & _

           "left join OCRD T2 on T2.CardCode = T1.CardCode " & _

            "where T1.Comments = '" & Cells(i, 8).Value & "'"

   rs.Open strSQL, strConnection

     Do While Not rs.EOF 'Datensätze einlesen und Zwischenspeichern

      ActiveSheet.Cells(i, LetzteSpalte + 1).Value = rs("U_P_r_n")

      ActiveSheet.Cells(i, LetzteSpalte + 2) = rs("PlannedQty")

      ActiveSheet.Cells(i, LetzteSpalte + 3).NumberFormat = "yyyy/mm/dd;@"

      ActiveSheet.Cells(i, LetzteSpalte + 3).Value = rs("DueDate")

      ActiveSheet.Cells(i, LetzteSpalte + 4).Value = rs("CardCode")

      ActiveSheet.Cells(i, LetzteSpalte + 5).Value = rs("Customer")

rs.MoveNext

Loop

rs.Close

Answers (0)