Forum
SELECT TOP (100) PERCENT STOK_KODU, COALESCE (SUM(CASE WHEN kod1 = 'G' THEN kod2 ELSE 0 END), 0)
- COALESCE (SUM(CASE WHEN kod1 = 'C' THEN kod2 ELSE 0 END), 0) AS StokToplam1
FROM s_hareket
WHERE (STOK_KODU BETWEEN '01001' AND '75000') and (tarih BETWEEN '2011-01-01' and '2011-06-30')
GROUP BY STOK_KODU ORDER BY STOK_KODU
sorgumla ilk 6 aydaki stok toplamlarımı listeleyebiliyorum,burada yapmak istediğim aynı sorgu içerisinde 2. altı ayıda listelemek bunu nasıl yapabilirim?
stokkodu | 1. ay | 2. 6ay
bu şekilde sorgumun gelmesini istiyorum.
Merhaba,
dateadd ve getdate fonksiyonlarını kullanarak yapabilirsiniz.
SELECT TOP ( 100 ) PERCENT
STOK_KODU ,
COALESCE(SUM(CASE WHEN kod1 = 'G' THEN kod2
ELSE 0
END), 0) - COALESCE(SUM(CASE WHEN kod1 = 'C' THEN kod2
ELSE 0
END), 0) AS StokToplam1
FROM s_hareket
WHERE ( STOK_KODU BETWEEN '01001' AND '75000' )
AND ( tarih BETWEEN dateadd(month,-6,GETDATE()) AND GETDATE() )
GROUP BY STOK_KODU
ORDER BY STOK_KODU
Ve ya , sorunuzu doğru anladıysam sonuçları UNION yapmak istiyorsanız , o zaman aşağıdaki gibi yapabilirsiniz.
SELECT * FROM
(SELECT TOP ( 100 ) PERCENT
'last' AS t
STOK_KODU ,
COALESCE(SUM(CASE WHEN kod1 = 'G' THEN kod2
ELSE 0
END), 0) - COALESCE(SUM(CASE WHEN kod1 = 'C' THEN kod2
ELSE 0
END), 0) AS StokToplam1
FROM s_hareket
WHERE ( STOK_KODU BETWEEN '01001' AND '75000' )
AND ( tarih BETWEEN dateadd(month,-6,GETDATE()) AND GETDATE() )
GROUP BY STOK_KODU
ORDER BY STOK_KODU
UNION ALL
SELECT TOP ( 100 ) PERCENT
'first' AS t
STOK_KODU ,
COALESCE(SUM(CASE WHEN kod1 = 'G' THEN kod2
ELSE 0
END), 0) - COALESCE(SUM(CASE WHEN kod1 = 'C' THEN kod2
ELSE 0
END), 0) AS StokToplam1
FROM s_hareket
WHERE ( STOK_KODU BETWEEN '01001' AND '75000' )
AND ( tarih BETWEEN '2011-01-01' and '2011-06-30' )
GROUP BY STOK_KODU
ORDER BY STOK_KODU) AS sourceTable
PIVOT (
SUM(StokToplam1)
FOR T IN ([first], [last])
) AS p
Saygılar,
a
söylediğinizi yaptım fakat
'last' AS t burada hata veriyor
Merhaba,
SELECT * FROM
(SELECT TOP ( 100 ) PERCENT
'last' AS t,
STOK_KODU ,
COALESCE(SUM(CASE WHEN kod1 = 'G' THEN kod2
ELSE 0
END), 0) - COALESCE(SUM(CASE WHEN kod1 = 'C' THEN kod2
ELSE 0
END), 0) AS StokToplam1
FROM s_hareket
WHERE ( STOK_KODU BETWEEN '01001' AND '75000' )
AND ( tarih BETWEEN dateadd(month,-6,GETDATE()) AND GETDATE() )
GROUP BY STOK_KODU
ORDER BY STOK_KODU
UNION ALL
SELECT TOP ( 100 ) PERCENT
'first' AS t,
STOK_KODU ,
COALESCE(SUM(CASE WHEN kod1 = 'G' THEN kod2
ELSE 0
END), 0) - COALESCE(SUM(CASE WHEN kod1 = 'C' THEN kod2
ELSE 0
END), 0) AS StokToplam1
FROM s_hareket
WHERE ( STOK_KODU BETWEEN '01001' AND '75000' )
AND ( tarih BETWEEN '2011-01-01' and '2011-06-30' )
GROUP BY STOK_KODU
ORDER BY STOK_KODU) AS sourceTable
PIVOT (
SUM(StokToplam1)
FOR T IN ([first], [last])
) AS p
böyle olacak. Sadece ',' unutmuşum.Bunun için özür dilerim.
saygılar,
Asıl Ben sizden özür dilerim bu kadar kolay bir hatayı gözden kaçırıp size tekrar sorduğum için cevabınız için tekrar teşekkür ederim,