Forum
Arkadaşlar.
Aşağıdaki sorguda CARI_KODU nu grupladım ve çeşitli alanları 5. ay için topladım. Bana belirttiğim ay içerisinde kaç adet CARI_KODU nu topladığım bilgisi lazım. Aşağıdaki kodda tarihi dikkate almadan tablodakilerin tamamına göre adet bilgisi veriyor. Yani 1 sütun daha açtırıp 5. ayda ilgili CARI_KODU kaç kere birleştirilmiş.
SELECT TOP (100) PERCENT T.CARI_KODU,
(SELECT SUM(BRUTTUTAR) AS BRUT
FROM dbo.TBLFATUIRS AS TBLFATUIRS_1
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) +
(SELECT SUM(F_YEDEK3) AS DIGER
FROM dbo.TBLFATUIRS AS TBLFATUIRS_2
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) -
(SELECT SUM(SAT_ISKT) AS ISKONTO
FROM dbo.TBLFATUIRS AS TBLFATUIRS_3
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) AS TUTAR,
REPLACE(REPLACE(REPLACE(dbo.TBLCASABIT.CARI_ISIM, 'Þ', 'Ş'), 'Ý', 'İ'), 'Ð', 'Ğ') AS ISIM, dbo.TBLCASABIT.VERGI_NUMARASI, COUNT(T.CARI_KODU) AS ADET
FROM dbo.TBLFATUIRS AS T INNER JOIN
dbo.TBLCASABIT ON T.CARI_KODU = dbo.TBLCASABIT.CARI_KOD
GROUP BY T.CARI_KODU, REPLACE(REPLACE(REPLACE(dbo.TBLCASABIT.CARI_ISIM, 'Þ', 'Ş'), 'Ý', 'İ'), 'Ð', 'Ğ'), dbo.TBLCASABIT.VERGI_NUMARASI
HAVING ((SELECT SUM(BRUTTUTAR) AS BRUT
FROM dbo.TBLFATUIRS AS TBLFATUIRS_1
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) +
(SELECT SUM(F_YEDEK3) AS DIGER
FROM dbo.TBLFATUIRS AS TBLFATUIRS_2
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) -
(SELECT SUM(SAT_ISKT) AS ISKONTO
FROM dbo.TBLFATUIRS AS TBLFATUIRS_3
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) > 5000) AND
((SELECT SUM(BRUTTUTAR) AS BRUT
FROM dbo.TBLFATUIRS AS TBLFATUIRS_1
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) +
(SELECT SUM(F_YEDEK3) AS DIGER
FROM dbo.TBLFATUIRS AS TBLFATUIRS_2
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) -
(SELECT SUM(SAT_ISKT) AS ISKONTO
FROM dbo.TBLFATUIRS AS TBLFATUIRS_3
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) <> 0)
ORDER BY ISIM
Merhaba Özgür bey,
Datalarınız hakkındaki güvenlik seviyesini tam olarak bilmiyorum ama bu tabloyu eğer paylaşabilirseniz verdiğiniz koda istinaden düzenleme yapıp gerekli istemiş olduğunuz sonucu elde edene kadar tartışıp ihtiyacınızı görecek kodu üretmeye çalışabilirim. İyi çalışmalar.
Kenan Bey.
İlginiz için teşekkürler.
Aşağıdaki gibi oldu.
SELECT TOP (100) PERCENT T.CARI_KODU, COUNT(T.CARI_KODU) AS CARI,
(SELECT SUM(BRUTTUTAR) AS BRUT
FROM dbo.TBLFATUIRS AS TBLFATUIRS_1
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) +
(SELECT SUM(F_YEDEK3) AS DIGER
FROM dbo.TBLFATUIRS AS TBLFATUIRS_2
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) -
(SELECT SUM(SAT_ISKT) AS ISKONTO
FROM dbo.TBLFATUIRS AS TBLFATUIRS_3
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) AS TUTAR,
REPLACE(REPLACE(REPLACE(dbo.TBLCASABIT.CARI_ISIM, 'Þ', 'Ş'), 'Ý', 'İ'), 'Ð', 'Ğ') AS ISIM, dbo.TBLCASABIT.VERGI_NUMARASI
FROM dbo.TBLFATUIRS AS T INNER JOIN
dbo.TBLCASABIT ON T.CARI_KODU = dbo.TBLCASABIT.CARI_KOD
WHERE (MONTH(T.TARIH) = 5)
GROUP BY T.CARI_KODU, REPLACE(REPLACE(REPLACE(dbo.TBLCASABIT.CARI_ISIM, 'Þ', 'Ş'), 'Ý', 'İ'), 'Ð', 'Ğ'), dbo.TBLCASABIT.VERGI_NUMARASI
HAVING ((SELECT SUM(BRUTTUTAR) AS BRUT
FROM dbo.TBLFATUIRS AS TBLFATUIRS_1
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) +
(SELECT SUM(F_YEDEK3) AS DIGER
FROM dbo.TBLFATUIRS AS TBLFATUIRS_2
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) -
(SELECT SUM(SAT_ISKT) AS ISKONTO
FROM dbo.TBLFATUIRS AS TBLFATUIRS_3
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) > 5000) AND
((SELECT SUM(BRUTTUTAR) AS BRUT
FROM dbo.TBLFATUIRS AS TBLFATUIRS_1
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) +
(SELECT SUM(F_YEDEK3) AS DIGER
FROM dbo.TBLFATUIRS AS TBLFATUIRS_2
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) -
(SELECT SUM(SAT_ISKT) AS ISKONTO
FROM dbo.TBLFATUIRS AS TBLFATUIRS_3
WHERE (CARI_KODU = T.CARI_KODU) AND (MONTH(TARIH) = 5) AND (YEAR(TARIH) = 2012)) <> 0)
ORDER BY ISIM
Rica ederim Özgür bey İyi çalışmalar.