|
sqldba2k6
Posting Yak Master
176 Posts |
Posted - 2006-07-28 : 16:00:07
|
| In continuation with already posted issue which may not be clear with that post http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=69749I have written a query for a search which should get the data..based on the parameters..I got struck up,not able to produce the correct output.Appreciate some one can help me in correcting the query ..Declare @Pin table (PID tinyint, PEID smallint, FMID smallint, TP char(1),SDT datetime)insert @Pinselect 120, 9497, 5107, 'A','2006-07-29 00:00:00.000' union allselect 121, NULL, 5107, 'B','2006-07-30 00:00:00.000'union allselect 122, NULL, 5107, 'B','2006-07-30 00:00:00.000' union allselect 123, NULL, 5107, 'B','2006-07-30 00:00:00.000' Declare @HIT table (PID tinyint, OPT tinyint )insert @HITselect 122,01declare @GX table (PID tinyint,x tinyint)insert @GXselect 120,01 Declare @AYT table (PID tinyint,AYTCD varchar(5))insert @AYT select 121,'15.15' UNION ALLselect 121,'15.14' UNION ALLselect 121,'15.13'declare @FRMSDT DATETIMEdeclare @TOSDT DATETIMEdeclare @X INTdeclare @PEID INTdeclare @OPT INTSET @FRMSDT ='2006-07-29 00:00:00.000' SET @TOSDT ='2006-07-30 00:00:00.000' SET @X =01SET @PEID =9497SET @OPT =0SELECT AYTCD,AA.PID,Z.PEID,A.X,z.sdt,e.optFROM (SELECT s.PID ,w.PEID,s2.PID pid2,S.SDT FROM ( SELECT FMID, MAX(PEID) PEID FROM @PIN GROUP BY FMID ) w INNER JOIN @PIN s ON s.FMID = w.FMID INNER JOIN @PIN s2 ON s2.FMID = w.FMID AND s2.PEID = w.PEID ) zJOIN @AYT AA ON AA.PID = Z.PIDJOIN @GX A ON A.PID = z.pid2LEFT OUTER JOIN @HIT E ON E.PID = z.PID WHERE (@X=0 OR A.X=@X) AND (@PEID=0 OR Z.PEID=@PEID) AND (@OPT=0 OR E.OPT=@OPT) AND (@FRMSDT IS NULL OR Z.SDT Between @FRMSDT And @TOSDT) AND (@TOSDT IS NULL OR Z.SDT Between @FRMSDT And @TOSDT) with below values to the parametersSET @FRMSDT ='2006-07-29 00:00:00.000' SET @TOSDT ='2006-07-30 00:00:00.000' SET @X =01SET @PEID =9497SET @OPT =01Desired output:AYTCD PID PEID X SDT OPT----- --- ---- -- ------------------------ -----15.15 121 9497 1 2006-07-30 00:00:00.000 115.14 121 9497 1 2006-07-30 00:00:00.000 115.13 121 9497 1 2006-07-30 00:00:00.000 1 |
|