Ich brauche Hilfe, um eine ORACLE SQL-Abfrage zu erstellen, die mir Verkäufe nach Artikelname für jeden Monat geben kann. Hier sind die Spalten, die in Abfrage benötigt werden - Datum (Monat), Artikelname, Anzahl verkauften Produkte, durchschnittlicher Stückpreis, Nettoumsatz, KrediteinheitenSQL (Oracle) Abfrage für Verkäufe nach Artikel
Menge
einen Artikel verkauft wird das Netz Menge, die nach Gutschriften für einen bestimmten Artikel in diesem Monat verkauft wird; dh = SUMME (Rechnungspositionen Menge verkauft.) - SUM (Gutschrift Artikel Kredit-Menge.)
Nettoumsatz
ein Artikel in einem bestimmten Monat = SUMME (Rechnungs Items.Total Amount) - SUM (Gutschrift Artikel Kreditbetrag.)
Krediteinheiten : es bezieht sich auf insgesamt Einheiten des Artikels (Kreditmenge), die in diesem Monat
im Folgenden sind Tabellen gutgeschrieben wurden :
Rechnungspositionen (Rechnungsdatum, Rechnungsnummer, Produktnummer, Artikelname, Anzahl verkaufter Produkte, Gesamtbetrag)
Inventar Anpassung (Datum, Entity, EntityID, ItemID, Artikelname, Menge, Stückpreis, Lagerbestand, Nettobetrag) Diese Tabelle enthält Stückpreis und Menge eines Artikels, wenn eine Rechnung oder Gutschrift für diesen Artikel generiert wurde. Entität kann "Rechnung" oder "CreditNote" sein. EntityID ist Rechnungs-ID oder CreditNotes ID
Gutschriften (Stornierung Datum, CreditNotes ID, Kundennummer)
Gutschrift Artikel (CreditNotes ID, Artikelnummer, Artikelname, Kredit Menge, Kreditbetrag) Hinweis: Dies ist eine Einzelpostentabelle für die Gutschriftstabelle. CreditNote Datum ist in Stammtabelle verfügbar
Bis jetzt habe ich diese Abfrage, aber ich bin nicht in der Lage, nächsten Schritt der Beitritt mit Gutschrift und Gutschrift Elemente zu verstehen und Nettoumsatz und Menge verkauft.
SELECT
inv_items."Invoice Date" inv_date,
inv_items."Product ID" inv_items_Prod_ID,
inv_items.Item Name,
AVG(IDR."Unit Price"),
SUM(inv_items."Quantity sold") total_Qty_Sold,
SUM(inv_items."Total Amount") inv_ItemsSale
FROM "Invoice Items" inv_items
JOIN "Inventory Adjustment" IDR ON IDR."EntityID" = inv_items."Invoice ID"
AND IDR."ItemID" = inv_items."Product ID"
AND IDR."Date" = inv_items."Invoice Date"
GROUP BY 1,
2,
3
Jede Hilfe wird sehr geschätzt.
Wenn Sie Oracle verwenden, warum Sie eine ANSI-SQL-Abfrage wollen? Die von Ihnen geschriebene Abfrage ist nicht ANSI-kompatibel. –
Sie haben Recht, ich möchte Abfrage in Oracle. Entschuldigen Sie. Ich werde den Beitrag bearbeiten. – manshu116
'Gruppe von 1, 2, 3' funktioniert möglicherweise in anderen Datenbankprodukten (ich glaube, ich lese es), aber es funktioniert nicht in Oracle. 'order by 1, 2, 3' funktioniert, aber für die Gruppierung müssen Sie auf die Spalten nach Namen und nicht nach Zahlen verweisen. – mathguy