Çözemediğim bir sql hatası

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Çözemediğim bir sql hatası

Mesaj gönderen tuna »

Arkadaşlar stored procedure'da bir kod yazıyorum fakat procedure çalışırken hata veriyor ve başlamıyor.

kodun hata veren kısmı şu :

FETCH FIRST FROM tarih_cur into @tarihler
set @adettopla=0
while @@fetch_status=0
begin
set @adettopla=(select case when sum(Miktar)is null then '0' else sum(Miktar)end as Miktar from RAP09_EnvanterHaftalik where Marka=@markalar and tarih=@tarihler group by Tarih,marka) --hata veren satır bu
if @adettopla is not null insert into RAP09_EnvanterHaftalikTbl (MARKA,TARIH,MIKTAR) values (@markalar,@tarihler,@adettopla)
FETCH NEXT FROM tarih_cur into @tarihler
end

gelen hata :
Msg 512, Level 16, State 1,
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Çözemediğim bir sql hatası

Mesaj gönderen conari »

Isnull u başa al.

Kod: Tümünü seç

isnull(select sum(Miktar)from RAP09_EnvanterHaftalik where Marka=@markalar and tarih=@tarihler group by Tarih, marka,0) as Miktar from 
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: Çözemediğim bir sql hatası

Mesaj gönderen tuna »

verdiğiniz kod hata veriyor.

Msg 164, Level 15, State 1, Procedure RAP09_HaftalikEnvanterHesapla, Line 42
GROUP BY expressions must refer to column names that appear in the select list.

kodu şu şekilde yazmıştım
set @adettopla=@adettopla+isnull((select sum(Miktar)from RAP09_EnvanterHaftalik where Marka=@markalar and tarih=@tarihler group by Tarih, marka,0) as Miktar)
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Çözemediğim bir sql hatası

Mesaj gönderen conari »

Deneme imkanım olmamıştı.
Örnek olsun diye o şekilde isnull içinde copy paste yaptım.

Group bylara gerek yok.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: Çözemediğim bir sql hatası

Mesaj gönderen tuna »

group by kaldırdığım zamanda daha farklı bir hata veriyor. sql dizim hatası veriyordu.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Çözemediğim bir sql hatası

Mesaj gönderen conari »

Kod: Tümünü seç

set @adettopla=@adettopla+isnull((select sum(Miktar) from RAP09_EnvanterHaftalik where Marka=@markalar and tarih=@tarihler),0) as Miktar
Şeklinde çalışması lazım.
As Miktara da gerek yok zaten adettopla a atama yapıyorsunuz.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: Çözemediğim bir sql hatası

Mesaj gönderen tuna »

Teşekür ederim conari.

"as miktar" hata veriyordu onu kaldırınca çalıştı. Şuan exec yapıp test etme imkanım yok (tablo kullanımda) ama çalışır heralde.

Bu arada sql konusunda profesyonelsiniz heralde. Nezaman sql ile ilgili bir soru sorsam ilk önce siz cevap veriyorsunuz. İlginiz için çok çok teşekürler.

İyi çalışmalar.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Çözemediğim bir sql hatası

Mesaj gönderen conari »

Rica ederim.
Profesyonel değilim. Orta seviye belki denebilir.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla