J'essaie de déterminer la différence entre les clients facturés au cours des trois derniers mois et l'ensemble de la clientèle. Je suis en mesure de calculer les clients qui ont été facturés en utilisant le SQLDifférence entre deux ensembles de données dans SQL Server 2000
DECLARE @DateFrom AS DATETIME
SET @DateFrom =
CONVERT(DATETIME, CAST(YEAR(GETDATE()) AS VARCHAR(4)) +
'-' +
CAST(MONTH(DATEADD(MONTH, -3, GETDATE())) AS VARCHAR(2)) + '-01', 120)
DECLARE @DateTo AS DATETIME
SET @DateTo =
CONVERT(DATETIME, CAST(YEAR(GETDATE()) AS VARCHAR(4)) +
'-' +
CAST(MONTH(GETDATE()) AS VARCHAR(2)) + '-01', 120)
SELECT DISTINCT
i.CustomerCode
FROM
Invoice AS i
WHERE
(i.InvoiceDate > @DateFrom AND i.InvoiceDate < @DateTo)
Le tableau ci-dessous que je comparerai contre sera la table client qui a également un champ de CustomerCode.
Merci d'avance!
EDIT
Après avoir passé les âges à essayer de comprendre cela et juste après quelques minutes de ce message ici affichant je l'ai trouvé une solution. En utilisant la clause NOT IN! Dans mon serveur, cela semble fonctionner plus rapidement que les étapes mentionnées ci-dessous lorsque j'ai testé chacun dans Management Studio.
et que voulez-vous exactement? Une liste de tous les clients qui n'ont pas été facturés au cours des 3 derniers mois? Quelle version de SQL Server utilisez-vous? –
Exactement cela. J'utilise SQL Server 2000. Y at-il une meilleure solution à celle que j'ai actuellement? – Malachi
Non, je pense que dans SQL Server 2000, c'est à peu près aussi simple que cela. –