|
|
|
SSC Journeyman
      
Group: General Forum Members
Last Login: Friday, May 10, 2013 2:47 PM
Points: 83,
Visits: 244
|
|
Hello
I have one task
Create table #x1 ( iSchoolCode int, iSchoolYearCode int, dtCalendarDate datetime, iCalendarDayId int )
drop table #x1
insert into #x1 values (301,2012,'2012-08-10 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-11 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-12 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-13 00:00:00.000',4259) insert into #x1 values (301,2012,'2012-08-14 00:00:00.000',4260) insert into #x1 values (301,2012,'2012-08-15 00:00:00.000',4261) insert into #x1 values (301,2012,'2012-08-16 00:00:00.000',4262) insert into #x1 values (301,2012,'2012-08-17 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-18 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-19 00:00:00.000',4263) insert into #x1 values (301,2012,'2012-08-20 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-21 00:00:00.000',4264) insert into #x1 values (301,2012,'2012-08-22 00:00:00.000',4265) insert into #x1 values (301,2012,'2012-08-23 00:00:00.000',4266)
Now I need to display row number when iCalendarDayId is not null so desired output will be
iSchoolCode iSchoolYearCode dtCalendarDate iCalendarDayId ROW_Number 301 2012 2012-08-10 00:00:00.000 NULL NULL 301 2012 2012-08-11 00:00:00.000 NULL NULL 301 2012 2012-08-12 00:00:00.000 NULL NULL 301 2012 2012-08-13 00:00:00.000 4259 1 301 2012 2012-08-14 00:00:00.000 4260 2 301 2012 2012-08-15 00:00:00.000 4261 3 301 2012 2012-08-16 00:00:00.000 4262 4 301 2012 2012-08-17 00:00:00.000 NULL NULL 301 2012 2012-08-18 00:00:00.000 NULL NULL 301 2012 2012-08-19 00:00:00.000 4263 5 301 2012 2012-08-20 00:00:00.000 NULL NULL 301 2012 2012-08-21 00:00:00.000 4264 6 301 2012 2012-08-22 00:00:00.000 4265 7 301 2012 2012-08-23 00:00:00.000 4266 8
|
|
|
|
|
SSC Journeyman
      
Group: General Forum Members
Last Login: Friday, May 10, 2013 2:47 PM
Points: 83,
Visits: 244
|
|
Hello
so far I got this
SELECT iSchoolCode , iSchoolYearCode, dtCalendarDate , ROW_NUMBER() OVER ( ORDER BY dtCalendarDate ) RowNum FROM #x1 WHERE iCalendarDayId IS NOT NULL UNION ALL SELECT iSchoolCode , iSchoolYearCode, dtCalendarDate , NULL RowNum FROM #x1 WHERE iCalendarDayId IS NULL order by dtCalendarDate
if someone has better way to do please let me know
Thanks
|
|
|
|
|
Mr or Mrs. 500
      
Group: General Forum Members
Last Login: Today @ 1:50 AM
Points: 595,
Visits: 2,138
|
|
Hi
Another way without the UNION
Create table #x1 ( iSchoolCode int, iSchoolYearCode int, dtCalendarDate datetime, iCalendarDayId int )
insert into #x1 values (301,2012,'2012-08-10 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-11 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-12 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-13 00:00:00.000',4259) insert into #x1 values (301,2012,'2012-08-14 00:00:00.000',4260) insert into #x1 values (301,2012,'2012-08-15 00:00:00.000',4261) insert into #x1 values (301,2012,'2012-08-16 00:00:00.000',4262) insert into #x1 values (301,2012,'2012-08-17 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-18 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-19 00:00:00.000',4263) insert into #x1 values (301,2012,'2012-08-20 00:00:00.000',NULL) insert into #x1 values (301,2012,'2012-08-21 00:00:00.000',4264) insert into #x1 values (301,2012,'2012-08-22 00:00:00.000',4265) insert into #x1 values (301,2012,'2012-08-23 00:00:00.000',4266)
SELECT *
FROM
#x1 X1
LEFT JOIN ( SELECT iCalendarDayId ,ROW_NUMBER() OVER ( ORDER BY dtCalendarDate ) RowNum FROM #x1 WHERE iCalendarDayId IS NOT NULL ) AS Row ON x1.iCalendarDayId = Row.iCalendarDayId
drop table #x1
Cheers
Andy
========================================================================================================================== A computer lets you make more mistakes faster than any invention in human history - with the possible exceptions of handguns and tequila. Mitch Ratcliffe
|
|
|
|
|
Ten Centuries
      
Group: General Forum Members
Last Login: Sunday, May 19, 2013 11:16 PM
Points: 1,061,
Visits: 1,151
|
|
I was also going to write the script with using UNION ALL as yogi already described...
i think you get your answer now
|
|
|
|