je besoin d'aide pour construire une requête SQL ORACLE SQL (Oracle) qui peut me donner des ventes par Nom d'article pour chaque mois. Voici les colonnes qui sont nécessaires dans la requête - Date (mois), Nom du produit, la quantité Vendu, moyenne Prix unitaire, les ventes nettes, des unités de créditrequête pour les ventes par article
Quantité Vendu
d'un élément est le net quantité vendue après les crédits pour un article particulier dans ce mois; qui est = SOMME (articles de facture Quantité vendue.) - SOMME (articles Note de crédit Quantité de crédit.)
Ventes nettes
d'un élément dans un mois donné = SOMME (facture Items.Total Montant) - SUM (Articles Note de crédit Montant du crédit.)
unités de crédit : il se réfère à des unités totales de l'article (Quantité de crédit) qui ont été crédités en ce mois
Ci-dessous sont des tableaux :
Articles de facture (facture de date, numéro de facture, Product ID, Nom de l'article, la quantité vendue, Montant total)
Inventaire Réglage (date, entité, EntityID, ItemID, Nom de l'article, la quantité, Prix unitaire, Stock en inventaire, Montant net) Ce tableau tient prix unitaire et la quantité d'un élément lorsque la facture ou une note de crédit pour cet article a été généré. L'entité peut être "Facture" ou "CreditNote". EntityID est Numéro de facture ou CreditNotes ID
Notes de crédit (extourne date, CreditNotes ID, ID client)
Articles Note de crédit (CreditNotes ID, ID d'objet, Nom de l'article, le crédit Quantité, crédit Montant) Remarque: il s'agit d'une table d'éléments de ligne pour la table Credit Notes. CreditNote Date disponible dans le tableau principal
Jusqu'à présent, j'ai cette requête, mais je ne suis pas en mesure de déterminer l'étape suivante de joindre des éléments de note de crédit et de crédit et d'obtenir des ventes nettes et des quantités vendues.
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
Toute aide est très appréciée.
Si vous utilisez Oracle, pourquoi voulez-vous une requête SQL ANSI? La requête que vous avez écrite n'est pas compatible avec ANSI. –
Vous avez raison, je veux une requête en oracle. Mes excuses. Je vais modifier le post. – manshu116
'groupe par 1, 2, 3' peut fonctionner dans d'autres produits de base de données (je pense que je l'ai lu), mais cela ne fonctionne pas dans Oracle. 'order by 1, 2, 3' fonctionne, mais pour le groupement, vous devez vous référer aux colonnes par nom et non par numéro. – mathguy