Sunday, January 25, 2015

Data Sequence

Please try:



DECLARE @myTable TABLE (CustomerNumber INT, CustomerType VARCHAR(10), DateStampDatetime SMALLDATETIME)
INSERT INTO @myTable
SELECT 67, 'M2', '8/1/2009' UNION ALL
SELECT 67, 'M2', '9/1/2009' UNION ALL
SELECT 67, 'M2', '10/1/2009' UNION ALL
SELECT 67, 'M2', '3/1/2009' UNION ALL
SELECT 67, 'M1', '2/1/2009' UNION ALL
SELECT 67, 'M1', '1/1/2009' UNION ALL
SELECT 67, 'M1', '12/1/2008' UNION ALL
SELECT 67, 'M1', '11/1/2008'

;WITH CTE
AS
(
SELECT *
,ROW_NUMBER() OVER(PARTITION BY CustomerNumber, CustomerType ORDER BY DateStampDatetime ASC) AS Row_ASC
,ROW_NUMBER() OVER(PARTITION BY CustomerNumber, CustomerType ORDER BY DateStampDatetime DESC) AS Row_DSC
FROM
@myTable
)
SELECT
CustomerNumber
,CustomerType
,MAX(CASE WHEN Row_ASC = 1 THEN DateStampDatetime ELSE NULL END) As FromDate
,MAX(CASE WHEN Row_DSC = 1 THEN DateStampDatetime ELSE NULL END) As ToDate
FROM
CTE
WHERE
Row_ASC = 1
OR Row_DSC = 1
GROUP BY
CustomerNumber
,CustomerType





Best Wishes, Arbi; Please vote if you find this posting was helpful or Mark it as answered.


No comments:

Post a Comment