Satirlari kolon gibi gostermek

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 08:33
Konum: Almaty, Kazakhstan

Satirlari kolon gibi gostermek

Mesaj gönderen Burhan_ast »

Merhaba,

MS-Sql server kullaniyorum, su sekilde bir tablo ve satirlar var

Kod: Tümünü seç

Stok kodu   Aciklama                 islem tipi           miktar        Tutar
------------   ----------------------- ------------       ----------      -------
100.001      X tukenmez kalem    Satis                10              20
100.001      X tukenmez kalem    iade                 3                6
100.002      y tukenmez kalem    Satis                12              24


Bu kodu taloyu su sekilde gostermem lazim SQL komutlari ile yapmam mumkunmu

Kod: Tümünü seç

Stok kodu   Aciklama                 Sat. mik. Sat.tut.   iade mik     iade tut
------------   -----------------------  ---------   -------   ----------    --------
100.001      X tukenmez kalem        10         20          3               0
100.002      y tukenmez kalem        12         24          0               0

Saygilar...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Mümkün tabiki....

Kod: Tümünü seç

Select STOK_KODU,ACIKLAMA, 
SATIS_MIKTAR=sum(if ISLEM_TIPI='Satis' then MIKTAR else 0 endif),
SATIS_TUTAR=sum(if ISLEM_TIPI='Satis' then TUTAR else 0 endif),
IADE_MIKTAR=sum(if ISLEM_TIPI='iade' then MIKTAR else 0 endif),
IADE_TUTAR=sum(if ISLEM_TIPI='iade' then TUTAR else 0 endif)
from TABLO
group by STOK_KODU,ACIKLAMA
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 08:33
Konum: Almaty, Kazakhstan

Satirlari kolon gibi gostermek

Mesaj gönderen Burhan_ast »

Merhaba,

oncelikle ozur dilerim, so :oops: ruyu eksim sordugum icin, satirlarda gostermis oldugum fatura tipi kolonu aslinda faturanin, asligina ait, yani sistemde 2 tablo var faturanin ust kismi ve satirlar fatura tipi ust kisimda, satirlar ise faturaya fatura_akyit_no ile baglaniyor.

saygilar
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 08:33
Konum: Almaty, Kazakhstan

SQL kodu neden calismadi acaba

Mesaj gönderen Burhan_ast »

Fahrettin abi merhaba,

Kod: Tümünü seç


Select 
	Stok_kodu, Stok_Aciklama,
	Satis_miktar = sum(if Fatura_tipi='Perakende satis' then Miktar else 0 endif), 
	Satis_tutar  = sum(if Fatura_tipi='Perakende satis' then Tutar else 0 endif), 

	Ambar_miktar = sum(if Fatura_tipi='Ambar transfer' then Miktar else 0 endif), 
	Ambar_tutar  = sum(if Fatura_tipi='Ambar transfer' then Tutar else 0 endif), 

	Iade_miktar = sum(if Fatura_tipi='Iade' then Miktar else 0 endif), 
	Iade_tutar  = sum(if Fatura_tipi='Iade' then Tutar else 0 endif), 

	Siparis_miktar = sum(if Fatura_tipi='Siparis' then Miktar else 0 endif), 
	Siparis_tutar  = sum(if Fatura_tipi='Siparis' then Tutar else 0 endif), 

	Sayim_miktar  = sum(if Fatura_tipi='Sayim' then Miktar else 0 endif), 
	Sayim_tutar   = sum(if Fatura_tipi='Sayim' then Tutar else 0 endif) 
 

From [Bs_Aypos].[dbo].[Ver_001_Stk_Fatura_satirlari]
group by Stok_kodu, Stok_aciklama


Daha once sordugum soruya verdiginiz cevaba gore yukaridaki SQL calistirdim ama malesef hata aliyorum,

Kod: Tümünü seç


Server: Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'if'.

Burhan Cakmak
tears
Üye
Mesajlar: 79
Kayıt: 29 Kas 2004 12:32

Mesaj gönderen tears »

MSSQL serverda case diye bi komut var onu kullanırsan satırları çok kolay bi şekilde sütun yapabilirsin. if olayına hiç girmeden.

Kolay gelsin...
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 08:33
Konum: Almaty, Kazakhstan

Case hakkinda bilgi,

Mesaj gönderen Burhan_ast »

Merhaba

Sayin Tears, Case nasil kullancagim hususunda mini bir kod verirseniz memnun olurum

saygilar


Burhan Cakmak
tears
Üye
Mesajlar: 79
Kayıt: 29 Kas 2004 12:32

Mesaj gönderen tears »

merhaba,

Kod: Tümünü seç


SELECT     
  Stok_kodu, Stok_Aciklama,
  (CASE WHEN Fisturu = 1  THEN Sum(Miktar) ELSE 0 END) AS Miktar,
  (CASE WHEN Fisturu = 2  THEN Sum(Tutar) ELSE 0 END) AS Tutar
FROM StokHareket
GROUP BY Stok_kodu, Stok_Aciklama


Kusura bakmayın yoğunluktan biraz geç oldu ama.
Bunu kullanın. :D

Kolay gelsin.
Cevapla