Je dois calculer le nombre de ticket pour une période de temps sélectionnée, et ce nombre de ticket devrait être par client. Vous trouverez ci-dessous la table dans laquelle j'ai des données de niveau de ligne.
select A.Customer, B.docN, B.amount AS DocumentTotal, A.date AS Date FROM (select InvoiceNo,Customer,date from Table1 Where date>=â20200201 00 :00 :00â and date <=â20200201 00:00:00â ) A join (select Customer,sum(amount) as Amount,count(InvoiceNo) as docN from Table1 where date>=â20200201 00 :00 :00â and date <=â20200201 00:00:00â group by Customer) B on A.Customer =B.Customer
3 Réponses :
Essayez ci-dessous et laissez-nous savoir, seule ici est que vous n'obtiendrez pas les numéros de facturation
select Customer,count(A.InvoiceNo) as Total_Invoice,date,sum(B.amount) as Total_Amount from Table1 A
join Table2 B
on A.InvoiceNo =B.InvoiceNo
Where A.date>=â20200201 00 :00 :00â and A.date <=â20200201 00:00:00â
group by A.Customer
Si vous avez vraiment besoin de FIVoice_numbers, vous pouvez également faire une jointure auto-adhérente ou utiliser une fonction agrégée comme String_Agg (Invoice_Number) pour l'obtenir.
Essayez la requête ci-dessous. Cela donnera la facture totale et la quantité avec la filtration de la date. sortie: p> C1 2020-01-01 1 3 900
C1 2020-03-01 5 3 900
C2 2020-01-01 2 2 800
C2 2020-02-01 4 2 800
C3 2020-02-01 3 1 200
Vous semblez vouloir simplement vouloir des fonctions de fenêtre: si vous ajoutez un où code> clause, il s'appliquera à toutes les colonnes. P> P> P> P> >
Quel produit DBMS utilisez-vous? "SQL" est juste une langue de requête, pas le nom d'un produit de base de données spécifique. Veuillez ajouter un tag pour le produit de base de données que vous utilisez. Pourquoi devrais-je marquer mon DBMS
Vraisemblablement, la sortie attendue que vous avez affichée ne provienne pas des échantillons de données que vous avez publiés?
Oui ... ma table et mes données sont différentes ... je viens de créer des données factices à expliquer
Vous vous joignez à la table sur la base du client qui ne va pas depuis le même client que ce dernier sera répété pour plusieurs factures, de sorte que ce sera une jointure croisée et un montant ira mal. Il suffit de rejoindre les deux tables sur Invoice_no et du groupe par le client, vous obtiendrez la sortie souhaitée.