J'ai un 2 tables qui ressemblent à ceci:SQL - Comment traverser-joindre deux tables pour répéter les valeurs
MonthEndDate
2016-06-30 00:00:00.000
2016-07-31 00:00:00.000
2016-08-31 00:00:00.000
2016-09-30 00:00:00.000
2016-10-31 00:00:00.000
2016-11-30 00:00:00.000
2016-12-31 00:00:00.000
ET
MonthEndDate CustomerId Flag
2016-06-30 00:00:00.000 123 1
2016-07-31 00:00:00.000 123 1
2016-08-31 00:00:00.000 123 1
2016-09-30 00:00:00.000 123 1
Je voudrais une sortie qui ressemble à ceci:
MonthEndDate CustomerId Flag
2016-06-30 00:00:00.000 123 1
2016-07-31 00:00:00.000 123 1
2016-08-31 00:00:00.000 123 1
2016-09-30 00:00:00.000 123 1
2016-10-31 00:00:00.000 123 0
2016-11-30 00:00:00.000 123 0
2016-12-31 00:00:00.000 123 0
tableau 1 est une table DimDate
qui a mois date de fin.
Tableau
2 est la table CustomerInfo
.
Chaque client a un Flag
défini sur 1
chaque fois que ce client a une valeur pour la fin de mois donnée.
Je veux obtenir une sortie qui aura chaque mois Date de fin (c'est pourquoi je poursuis DimDate
table) et quand un client n'a pas de valeur pour la fin du mois, je veux que le drapeau affiche 0.
I ' m avec SQL Server 2005
Voici quelques exemples de code je:
DECLARE @table1 TABLE
(
MonthEndDate DATETIME
)
INSERT INTO @table1
VALUES('2016-06-30 00:00:00.000')
INSERT INTO @table1
VALUES('2016-07-31 00:00:00.000')
INSERT INTO @table1
VALUES('2016-08-31 00:00:00.000')
INSERT INTO @table1
VALUES('2016-09-30 00:00:00.000')
INSERT INTO @table1
VALUES('2016-10-31 00:00:00.000')
INSERT INTO @table1
VALUES('2016-11-30 00:00:00.000')
INSERT INTO @table1
VALUES('2016-12-31 00:00:00.000')
DECLARE @table2 TABLE
(
MonthEndDate DATETIME
,CustomerId INT
,Flag INT
)
INSERT INTO @table2
VALUES('2016-06-30 00:00:00.000',123,1)
INSERT INTO @table2
VALUES('2016-07-31 00:00:00.000',123,1)
INSERT INTO @table2
VALUES('2016-08-31 00:00:00.000',123,1)
INSERT INTO @table2
VALUES('2016-09-30 00:00:00.000',123,1)
SELECt * FROM @table1
SELECt * FROM @table2
Pour une raison quelconque, je ne pensais pas utiliser à la fois Cross et gauche. Apprenez de nouvelles choses tous les jours. – jmich738