Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Selecting dates not in a date set
Message
De
19/07/2007 16:01:21
John Baird
Coatesville, Pennsylvanie, États-Unis
 
 
À
19/07/2007 16:00:58
John Baird
Coatesville, Pennsylvanie, États-Unis
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Divers
Thread ID:
01241975
Message ID:
01242126
Vues:
27
>>I dunno if it's better or not but here's another way
>>DECLARE @DateBegin datetime, @DateEnd datetime
>>SET @DateBegin = '20060101'
>>SET @DateEnd   = '20070719'
>>
>>CREATE TABLE #Trans (Fund char(3), TransDate datetime)
>>INSERT INTO #Trans VALUES ('ABC','20060101')
>>INSERT INTO #Trans VALUES ('ABC','20070602')
>>INSERT INTO #Trans VALUES ('ABC','20070603')
>>INSERT INTO #Trans VALUES ('ABC','20070615')
>>
>>INSERT INTO #Trans VALUES ('DEF','20070705')
>>INSERT INTO #Trans VALUES ('DEF','20070706')
>>INSERT INTO #Trans VALUES ('DEF','20070708')
>>INSERT INTO #Trans VALUES ('DEF','20070711')
>>
>>SELECT ISNULL(t1.Fund, t2.Fund) AS Fund,
>>		DATEADD(dd,1, ISNULL(t1.TransDate, @DateBegin-1)) AS bd,
>>		DATEADD(dd, -1, ISNULL(t2.TransDate, @DateEnd+1)) AS ed
>>	FROM #trans t1
>>	FULL JOIN #trans t2
>>		ON t2.Fund = t1.Fund AND t2.TransDate > t1.TransDate
>>			AND t1.TransDate BETWEEN @DateBegin AND @DateEnd
>>			AND t2.TransDate BETWEEN @DateBegin AND @DateEnd
>>	WHERE DATEDIFF(dd, ISNULL(t1.TransDate, @DateBegin-1), ISNULL(t2.TransDate, @DateEnd+1)) > 1


Thanks to all
>>		AND NOT EXISTS ( SELECT * FROM #Trans
>>			WHERE Fund = ISNULL(t1.Fund, t2.Fund)
>>				AND TransDate > ISNULL(t1.TransDate, @DateBegin-1)
>>				AND TransDate < ISNULL(t2.TransDate, @DateEnd+1))
>>ORDER BY 1, 2	
>>
>>DROP TABLE #Trans	
>>
>>
>>>I have an accounting table with transactions entered daily for funds. I need to select from the transaction table to make sure all dates have been loaded. I need to check that every day from 9/1/2006 thru today are represented in the file for all funds, and print a list of the missing days, i.e.
>>>
>>>
>>>fund         trans_date
>>>ABC           10/14/06
>>>ABC            3/14/07
>>>DEF            1/4/07
>>>
>>>
>>>
>>>I have been going round and round with this. I'm not sure the best way to implement it. How would you do it?
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform