2016-03-31 6 views
0

Ich verwende eine OpenQuery zu einem Oracle-Server, um Informationen von BaaN ERP zu erhalten.
Meine Anfrage besteht darin, die Informationen zu einem Artikel und allen Orten zu erhalten, an denen der Artikel Bestand hat, und die Informationen in einer Gitteransicht anzuzeigen, wie Sie im angehängten Bild sehen können.SQL Oracle OpenQuery zum Abrufen von Elementen und Speicherort von Elementen

enter image description here

Zum Beispiel: I have CIS-11-2846-01 im Lager 1, 2, 3 und 4. In
Lager 1 Ich habe 100 Stücke in R1 befinden, Lager 2 hat 5000 Stück in R1-A, Lager 3 hat 5000 Stück in R2-B und Lager 4 hat 1000 Stück in R5-Z.

Ich schaffte es, eine Abfrage, die alle Standorte und tatsächlichen Bestand für diesen Artikel zurückgibt, aber ich habe keine Ahnung, wie man die "Zeile Header", um die Artikelnummer mit der Produktion geschätzten Menge zu zeigen. (Die blaue Bemerkung im Bild)


bearbeiten

Meine eigentliche Abfrage ist wie folgt:

SELECT * FROM OPENQUERY 
(am3p1, 'SELECT o.T$PDNO, REPLACE(o.T$SITM,'' '','''')T$SITM, o.T$CWAR, o.T$QUNE, o.T$CPES$1, w.T$LOCA, w.T$STKS FROM baan.tticst001305 o 
INNER JOIN baan.twhinr140305 w ON REPLACE(o.T$SITM,'' '','''') = REPLACE(w.T$ITEM,'' '','''') 
WHERE o.T$PDNO = ''2GE000632'' AND w.T$LOCA <> '' '' ORDER BY o.T$SITM, w.T$IDAT') 

+1

Sie können nicht beide SQL-Server und Oracle sein. Bitte wählen Sie eine aus. – Hogan

+0

@Hogan - es ist eine OpenQuery, also würde ich annehmen, dass die Abfrage von SQL nach Oracle erfolgt. –

+0

Sie müssen uns mehr zeigen, wenn Sie Hilfe benötigen. Zeigen Sie uns die Abfrage, die Ihnen den nicht-blauen Teil gibt. – Hogan

Antwort

0

Nun, ich weiß nicht, Openquery, aber ich weiß SQL. In SQL würden Sie die folgende (wenn oT $ PDNO Elementname ist und oT $ QUNE ist Quantität.)

SELECT o.T$PDNO as item_name, sum(o.T$QUNE) as total 
FROM (
    SELECT o.T$PDNO, REPLACE(o.T$SITM,' ','')T$SITM, o.T$CWAR, o.T$QUNE, o.T$CPES$1, w.T$LOCA, w.T$STKS 
    FROM baan.tticst001305 o 
    INNER JOIN baan.twhinr140305 w ON REPLACE(o.T$SITM,' ','') = REPLACE(w.T$ITEM,' ','') 
    WHERE o.T$PDNO = '2GE000632' AND w.T$LOCA <> ' ' 
    ORDER BY o.T$SITM, w.T$IDAT') 
) 
GROUP BY o.T$PDNO 

Sie geben keine Regeln dafür, wie die letzten beiden Spalten abzuleiten, so kann ich nicht schließe sie ein.

+0

Perfekte Lösung! Vielen Dank für die Hilfe! Einige kleinere Änderungen vorgenommen, aber die Gesamtlösung funktionierte wie erwartet. Wird mit der OpenQuery, die ich verwendet habe, bearbeitet. –