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.
| Author |
Topic |
|
nirene
Yak Posting Veteran
98 Posts |
Posted - 2009-03-03 : 05:37:18
|
| Cust Id # DateOf Sale # SalFlagINDGA0000096 # 2009-01-30 # NULLINDGA0000096 # 2009-01-31 # NULLINDGA0000096 # 2009-02-01 # LINDGA0000096 # 2009-02-02 # NULLINDGA0000096 # 2009-02-03 # NULLINDGA0000097 # 2009-01-30 # NULLINDGA0000097 # 2009-01-31 # LINDGA0000097 # 2009-02-01 # LINDGA0000097 # 2009-02-02 # LINDGA0000097 # 2009-02-03 # NULLI want to find the sales flag which is marked as L and find the previousand next Date of when sales was not madeResultCust Id # DOS1 # DOS2INDGA0000096 # 2009-01-31 # 2009-02-02 INDGA0000097 # 2009-01-30 # 2009-02-03 Thanking you in anticipationNirene |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-03-03 : 05:43:16
|
Are you using SQL Server 2005? E 12°55'05.63"N 56°04'39.26" |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-03-03 : 05:48:48
|
[code]-- Prepare sample dataDECLARE @Sample TABLE ( CustID CHAR(12), DateOfSale DATETIME, SalFlag CHAR(1) )INSERT @SampleSELECT 'INDGA0000096', '2009-01-30', NULL UNION ALLSELECT 'INDGA0000096', '2009-01-31', NULL UNION ALLSELECT 'INDGA0000096', '2009-02-01', 'L' UNION ALLSELECT 'INDGA0000096', '2009-02-02', NULL UNION ALLSELECT 'INDGA0000096', '2009-02-03', NULL UNION ALLSELECT 'INDGA0000097', '2009-01-30', NULL UNION ALLSELECT 'INDGA0000097', '2009-01-31', 'L' UNION ALLSELECT 'INDGA0000097', '2009-02-01', 'L' UNION ALLSELECT 'INDGA0000097', '2009-02-02', 'L' UNION ALLSELECT 'INDGA0000097', '2009-02-03', NULL-- Do the workSELECT DISTINCT s.CustID, (SELECT MAX(p.DateOfSale) FROM @Sample AS p WHERE p.CustID = s.CustID AND p.DateOfSale < s.DateOfSale AND p.SalFlag IS NULL) AS DateOfSale1, (SELECT MIN(n.DateOfSale) FROM @Sample AS n WHERE n.CustID = s.CustID AND n.DateOfSale > s.DateOfSale AND n.SalFlag IS NULL) AS DateOfSale2FROM @Sample AS sWHERE s.SalFlag = 'L'ORDER BY s.CustID[/code] E 12°55'05.63"N 56°04'39.26" |
 |
|
|
|
|
|
|
|