A SELECT statement that assigns a value to a variable must not hata mesajı

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
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

A SELECT statement that assigns a value to a variable must not hata mesajı

Mesaj gönderen denizfatihi »

Merhaba,

Aşağıdaki sorguyu çalıştırınca hata alıyorum, biraz araştırınca köşeli parantez tavsiye edilmiş ama işe yaramadı hatayı nerede yapıyorum ?
Yardım ve destek için şimdiden teşekkür ederim.

Not : Konu kısmı saçma oldu ama yazacak başka bir şey bulamadım.

iyi günler,

Hata Mesajı

Kod: Tümünü seç

Msg 141, Level 15, State 1, Line 11
A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
Sorgu

Kod: Tümünü seç

DECLARE @BIRIMMUDMAIL VARCHAR(50)
DECLARE @BILGIMAIL VARCHAR (150)
DECLARE @KENDIMAIL VARCHAR(50)
DECLARE @MAIL VARCHAR(50)
 
 
SELECT I.id , 
[dbo].[InitCap](I.DEPARTMAN) AS D, I.SICIL
,[dbo].[InitCap](I.ADISOYADI) 
, [dbo].[InitCap](I.YAPIMCI) , CONVERT(DATE,I.CEKIMTARIHI) 
,I.KISI_SAYISI , [dbo].[InitCap](I.YAYINADI_KARSILASMA) 
,CAST(I.MEKANBEDELI AS numeric(18,2))  
, I.DTIPI1 
 
,CAST(I.YEMEKBEDELI AS numeric(18,2)) 
, I.DTIPI2 
 
,CAST(I.YOLBEDELI AS numeric(18,2))  
, I.DTIPI3 
 
,CAST(I.DIGERBEDELI AS numeric(18,2))  
, I.DTIPI4 , I.ACIKLAMA 
, I.ALTDURUMU 
 
,M.EMAIL, M.BILGI, M.GIZLI
 
, @BIRIMMUDMAIL=[M.EMAIL]
 
 
FROM [PORTAL].[dbo].[PRODUKSIYON] I
left JOIN [PORTAL].[dbo].[DURUMTIPLERI] D ON (D.ALTDURUMU=I.ALTDURUMU) AND (D.TURUTIPI=1) 
left JOIN [PORTAL].[dbo].[PERSONEL] PE ON (PE.SICIL=I.SICIL) and (PE.BIRAMIRI=I.BIRIMAMIRI) 
left JOIN [PORTAL].[dbo].[MUDUR] M ON (M.ID=I.BIRIMAMIRI) --AND (PE.BIRAMIRI=M.ID)
 
WHERE I.ALTDURUMU IN (2,3,4,5)  
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: A SELECT statement that assigns a value to a variable must not hata mesajı

Mesaj gönderen denizfatihi »

Merhaba,

Aşağıdaki sorgular ile bir aşamaya kadar geldim yalnız 1. ve 2. sorgu arasında bağlantıyı kuramadım.
Amaç ilk sorgu ile ilgili mail adreslerini tespit etmek 2. sorgu ile ilgili satırı bulup mail atmak, yalnız bu hali ile
her seferinde Müdür tablosunda yer alan ilk satırı bulup sadece ona gönderiyor, 2. sorgu içerisinde ilgili adresi buluyorum ama mail adresi kısmına atama yapamıyor 1. ve 2. sorguyu nasıl ilişkilendirebilirim ?
Şimdiden teşekkür ederim.

Kod: Tümünü seç

DECLARE @BIRIMMUDMAIL VARCHAR(50)
DECLARE @BILGIMAIL VARCHAR (150)
DECLARE @KENDIMAIL VARCHAR(50)
DECLARE @MAIL VARCHAR(50)
 
 
SELECT @BILGIMAIL = M.BILGI , @BIRIMMUDMAIL=M.EMAIL, @KENDIMAIL= PE.EMAIL
FROM [PORTAL].[dbo].[PRODUKSIYON] I
left JOIN DURUMTIPLERI D ON (D.ALTDURUMU=I.ALTDURUMU) AND (D.TURUTIPI=1) 
left join PERSONEL PE ON (PE.SICIL=I.SICIL) and (PE.BIRAMIRI=I.BIRIMAMIRI)
left join MUDUR M ON (M.ID=PE.BIRAMIRI)
 
 
SELECT I.id , 
[dbo].[InitCap](I.DEPARTMAN) AS DEPARTMAN, I.SICIL
,[dbo].[InitCap](I.ADISOYADI) 
, [dbo].[InitCap](I.YAPIMCI) , CONVERT(DATE,I.CEKIMTARIHI) 
,I.KISI_SAYISI , [dbo].[InitCap](I.YAYINADI_KARSILASMA) 
,CAST(I.MEKANBEDELI AS numeric(18,2)), I.DTIPI1 
,CAST(I.YEMEKBEDELI AS numeric(18,2)), I.DTIPI2
,CAST(I.YOLBEDELI AS numeric(18,2)), I.DTIPI3 
,CAST(I.DIGERBEDELI AS numeric(18,2)), I.DTIPI4 , 
I.ACIKLAMA, I.ALTDURUMU 
,M.EMAIL, M.BILGI, M.GIZLI
 
FROM [PORTAL].[dbo].[PRODUKSIYON] I
left JOIN [PORTAL].[dbo].[DURUMTIPLERI] D ON (D.ALTDURUMU=I.ALTDURUMU) AND (D.TURUTIPI=1) 
left JOIN [PORTAL].[dbo].[PERSONEL] PE ON (PE.SICIL=I.SICIL) and (PE.BIRAMIRI=I.BIRIMAMIRI) 
left JOIN [PORTAL].[dbo].[MUDUR] M ON (M.ID=I.BIRIMAMIRI) AND (PE.BIRAMIRI=M.ID)
WHERE I.ALTDURUMU IN (2,3,4,5)  
Cevapla