Je souhaite générer un rapport sur les ventes de tout client ayant commandé au cours des deux dernières années.FirebirdSQL Unique et Max (ou MaxValue)
je peux exécuter un rapport de toutes les factures datées dans les deux ans, puis retirez les doublons dans Excel, mais je préférerais le faire directement dans (Firebird) SQL
Je peux utiliser un WHERE date < 1 Jan 2015
(2 ans ou thereabours), mais comment puis-je l'obtenir pour montrer seulement le client une fois? Je pensais que si j'avais utilisé MAX(Date)
montrant ainsi la date la plus récente dans cette période de deux ans. Où vais-je mal? Je crois que je dois utiliser une fonction UNIQUE()
comme UNIQUE(ORDERCUSTOMER)
dans la clause SELECT.
SELECT
FINANCIALSALESINVOICES.TRANSACTIONDATE,
FINANCIALSALESINVOICES.INVOICECUSTOMER,
FINANCIALSALESINVOICES.ORDERCUSTOMER,
FINANCIALSALESINVOICES.INVOICENUMBER,
FINANCIALSALESINVOICES.SOURCENUMBER,
MAX(FINANCIALSALESINVOICES.TRANSACTIONDATE)
FROM FINANCIALSALESINVOICES
WHERE (FINANCIALSALESINVOICES.TRANSACTIONDATE>={d '2015-01-01'})
ORDER BY FINANCIALSALESINVOICES.INVOICECUSTOMER, FINANCIALSALESINVOICES.TRANSACTIONDATE
Je ne l'avoir indiquant la date maximum pour chaque instance de la facture au cours des deux dernières années, mais maintenant ne peut pas bien ce fichier ou le reproduire.
Quelle colonne de «FINANCIALSALESINVOICES» identifie un client particulier? Tu n'as jamais fait clair. –
Donc, vous voulez afficher la dernière facture par client? Est-ce que c'est ce que tu dis? Et avec le client, vous voulez dire le «INVOICECUSTOMER» ou le «ORDERCUSTOMER» ici? –
Le client de la commande. Le but du rapport si pour un envoi postal, qui sera en cours. Si j'ai demandé au client qui a commandé au cours des deux dernières années n'apparaissent qu'une seule fois, alors nous pouvons créer des étiquettes de courrier ou de courrier électronique (ou quel que soit le désir du département de marquage). –