2012-04-04 13 views
0

Ich habe einige Daten in einer Tabelle, die ich in eine ERP-Lösung importiere. Die Daten werden wie folgt dargestellt:Ich weiß nicht, wie man diese Daten abfragt

buyer name,order id,shipment item id,sku,quantity shipped, price etc 

Der Versand Artikel-ID ist ein eindeutiger Wert und ist der Primärschlüssel zusammen mit der Auftrags-ID.

Mein Problem ist folgendes:

ich jede einzelne Bestellung suchen müssen und einen Kundenauftrag auf der Grundlage dieser Informationen erstellen.

Das Problem, das ich habe, ist:

Jede Sendung Artikel-ID verfügt über eine eigene Zeile in der Datenbank und eine einfache

while(reader.read()){ 
    ...logic here... 
} 

wird, da es nicht funktionieren wird versuchen, n Menge an Kundenaufträge zu erstellen für denselben Kunden.

Ich muss eine Abfrage formatieren, die jede Sendung Artikel ID nimmt und seine Artikelnummer, Menge etc in einer Zeile, so dass ich es richtig anhängen kann, aber ich bin mir nicht sicher, wie dies funktionieren würde.

Jede Hilfe würde sehr geschätzt werden.

+0

So erstellen Sie Kundenaufträge, eine pro Auftrags-ID, oder? und jeder Kundenauftrag wird mehrere Sendungen haben? Wie erstellen Sie die Daten im neuen System - ist es ein API-Aufruf oder etwas anderes? Ich denke, das Problem ist dort wahrscheinlich, nicht Ihre Frage. – Aerik

+0

Wir erstellen einen Kundenauftrag mit mehreren Sendungsartikeln pro Kundenauftrags-ID. Die API ist Amazons MWS Reports API, die die Daten leider so teilt. Ich arbeite derzeit mit dem ERP-Anbieter zusammen, um festzustellen, ob ich einen bestimmten Befehl ausführen kann, um jeden Kundenauftrag schrittweise mit einer generischen Abfrage zu aktualisieren, anstatt zu versuchen, die Datenbank weiter zu manipulieren. Ich werde meine Ergebnisse veröffentlichen, wenn ich sie bekomme. –

Antwort

0

Ich habe eine Lösung mit dem ERP-Software-Anbieter gefunden, die es mir erlaubt, eine grundlegende SQL-Anweisung zu verwenden und ein Update für jeden Kundenauftrag durchzuführen, der einen Primärschlüssel der Auftrags-ID hat. Dies ermöglicht es, dass jede entsprechende Sendungsartikel-ID zu dem Verkaufsauftrag hinzugefügt wird, ohne dass zusätzliches SQL-Massieren durchgeführt werden muss, so als ob der Datensatz existiert, wird er aktualisiert, andernfalls wird ein neues erstellt.

Vielen Dank für Ihre Vorschläge.

0

Sie müssen eine Gruppe von Klausel verwenden, um die Zeilen zu dedupliziert Informationen der obersten Ebene

SELECT [Käufer Name], [Auftrags-ID], etc VON orderTable GROUP BY [Käufer name] zu bekommen, [ Bestell-ID], etc wobei [Bestell-ID] = 1

dann all Zeilen wählen seperat

SELECT * FROM orderTable wobei [Bestell-ID] = 1

+0

Das Problem ist nicht greifen verschiedene Werte, wie ich in der Lage, dies zu tun, da die Sendung itemId eindeutig ist, was ich tun muss, ist jede eindeutige Sendungs-ID in seiner übergeordneten ID in einer Zeile, so dass ich den Kundenauftrag ohne zusätzliche erstellen kann wird bearbeitet. Sofern ich Ihre Antwort nicht missverstanden habe, wird diese Abfrage die Felder aus der Auftragstabelle auswählen und sie zurückgeben, wenn die Auftrags-ID "1" ist, und dann die Felder mit der Auftrags-ID "1" auswählen.Wenn ich nicht die Ergebnisse jeder Abfrage speichern und dann jedes Mal erneut durchlaufen würde, wären die Ergebnisse der ersten Abfrage verloren. –

+0

Es tut mir leid, aber ich verstehe nicht ganz, was Sie zu tun versuchen. –

Verwandte Themen