0
votes

Besoin de calculer le nombre de ticket pour chaque client sur une date sélectionnée à elle seule avec des ventes quotidiennes sur la quantité et le total

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 


4 commentaires

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.


3 Réponses :


1
votes

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


1 commentaires

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.



0
votes

Essayez la requête ci-dessous. Cela donnera la facture totale et la quantité avec la filtration de la date. xxx pré>

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


0 commentaires

1
votes

Vous semblez vouloir simplement vouloir des fonctions de fenêtre: xxx

si vous ajoutez un clause, il s'appliquera à toutes les colonnes. >


0 commentaires