Site Sponsored By: SQLDSC - SQL Server Desired State Configuration
Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
I have a tableStatus Period YearOpen 12 2007Closed 11 2007Closed 12 2007Open 1 2008Open 3 2008Open 2 2008How can I search for rows with a status of 'open' between 2007 period 11 and 2008 period 2 please?
khalik
Constraint Violating Yak Guru
443 Posts
Posted - 2009-04-01 : 04:56:38
convert the period and year to date and use between to checkbetween '01/11/2007' and 01/03/2008 if u want to avoid 01/03 then use > & < operator========================================Project Manager who loves to code.===============Ask to your self before u ask someone
SwePeso
Patron Saint of Lost Yaks
30421 Posts
Posted - 2009-04-01 : 04:57:42
[code]DECLARE @Sample TABLE ( Status VARCHAR(12), Period TINYINT, Year SMALLINT )INSERT @SampleSELECT 'Open', 12, 2007 UNION ALLSELECT 'Closed', 11, 2007 UNION ALLSELECT 'Closed', 12, 2007 UNION ALLSELECT 'Open', 1, 2008 UNION ALLSELECT 'Open', 3, 2008 UNION ALLSELECT 'Open', 2, 2008SELECT *FROM @SampleWHERE 100 * Year + Period BETWEEN 200711 AND 200802[/code]E 12°55'05.63"N 56°04'39.26"
OldMySQLUser
Constraint Violating Yak Guru
301 Posts
Posted - 2009-04-01 : 05:41:25
Many thanks
madhivanan
Premature Yak Congratulator
22864 Posts
Posted - 2009-04-01 : 06:37:13
or
SELECT *FROM @SampleWHERE dateadd(month,period-1,dateadd(year,[year]-1900,0))>=dateadd(month,11-1,dateadd(year,2007-1900,0)) and dateadd(month,period-1,dateadd(year,[year]-1900,0))<dateadd(month,2,dateadd(year,2008-1900,0))