2016-03-22 11 views
0

Aşağıdaki veriler aşağıda gösterilmiştir. Bu şu sorgu tarafından üretildi:Sütun değerindeki bir değişimin meydana geldiği satırları seçin

;with noms as 
(
    select DateS, Region, Sales from tblSalesRegion 
    where Id = 'B2PM' 
) 
select * from 
noms as source pivot (max(Sales) for Region in ([UK],[US],[EUxUK],[JAP],[Brazil])) as pvt 
order by DateS 

veri: Aşağıda

DateS  UK  US  EUxUK JAP  Brazil 
2015-11-24 23634 22187 NULL NULL NULL 
2015-11-30 23634 22187 NULL NULL NULL 
2015-12-01 23634 22187 NULL NULL NULL 
2015-12-02 23634 22187 NULL NULL NULL 
2015-12-03 23634 22187 NULL NULL NULL 
2015-12-04 56000 22187 NULL NULL NULL 
2015-12-07 56000 22187 NULL NULL NULL 
2015-12-08 56000 22187 NULL NULL NULL 
2015-12-09 56000 22187 NULL NULL NULL 
2015-12-10 56000 10025 NULL NULL NULL 
2015-12-11 56000 10025 NULL NULL NULL 
2015-12-14 56000 10025 NULL NULL NULL 

Peşinde olduğum sonucudur. Yani temel olarak, değerlerden biri beş sütundan birinde (dateS sütunu hariç) değiştiğinde, bunun gösterilmesini istiyorum. Bunu Sql'de yapmanın bir yolu var mı? Tarihe ihtiyacım olduğu gibi basit bir grubun deyimiyle işe yaramayacağını düşünüyorum.

DateS  UK  US  EUxUK JAP  Brazil 
2015-11-24 23634 22187 0  0  0 
2015-12-04 56000 22187 0  0  0 
2015-12-10 56000 10025 0  0  0 

cevap

1

basit GROUP BY gibi görünüyor istediğini edilir:

;WITH noms AS 
(
    SELECT DateS, Region, Sales 
    FROM tblSalesRegion 
    WHERE Id = 'B2PM' 
) 
SELECT MIN(DateS), [UK],[US],[EUxUK],[JAP],[Brazil] 
FROM ( 
    SELECT DateS, 
      COALESCE([UK], 0) AS [UK], 
      COALESCE([US], 0) AS [US], 
      COALESCE([EUxUK], 0) AS [EUxUK], 
      COALESCE([JAP], 0) AS [JAP], 
      COALESCE([Brazil], 0) AS [Brazil] 
    FROM noms AS source 
    PIVOT (
     MAX(Sales) FOR Region IN ([UK],[US],[EUxUK],[JAP],[Brazil])) AS pvt 
) AS t 
GROUP BY [UK],[US],[EUxUK],[JAP],[Brazil] 
ORDER BY MIN(DateS) 
+0

Ah ben arıyorum

Sonucu BOŞ en sıfırlara değişebilir Ayrıca güzel! ne bildiğimi gösterir! teşekkürler çok güzel çalışıyor. Bunu anlamak için bunu bilecek – mHelpMe

İlgili konular