Merhaba,
Aşağıdaki sorgu ile tümü ve aranan kısmı getirmeye çalışıyoruz tümü kısmında sorun yok yalnız aranan kısmında sorun var ve bu durumu yetkilere göre de aynı zamanda getirmem gerekiyor, 0 ve 1 yetkileri tümü 3 olan ise kendi departmanına ait olanları getirecek. Yardımcı olması için tablo scriptlerini de ekledim, şimdiden teşekkür ederim. iyi günler.
Kod:
DECLARE @BIRIMYETKI int=5
DECLARE @YETKI int=0
DECLARE @CIKISKONTROL int=1
DECLARE @TALEPBIRIMI VARCHAR(50)=NULL
DECLARE @TALEPKISI VARCHAR(50)=NULL
DECLARE @URUNACIKLAMA VARCHAR(50)='%masa%'
DECLARE @URUNMODELI VARCHAR(50) =NULL
SELECT SADE.ID
,[dbo].[InitCap](SADE.DEPARTMAN) AS DEPARTMAN
,SADE.FIRMA
,SADE.SICIL
* * *,[dbo].[InitCap](SADE.ADISOYADI) AS ADISOYADI
* * *,SADE.SASID
* * *,SADE.SIRANO
* * *,[dbo].[InitCap](SADE.TALEPEDENBIRIM ) AS TALEPEDENBIRIM
* * *,[dbo].[InitCap](SADE.TALEPEDENKISI) AS TALEPEDENKISI
* * *,SADE.TALEPTARIHI
* * *,SADE.ADET
* * *,[dbo].[InitCap](SADE.TALEPEDILENURUNACIKLAMASI) AS TALEPEDILENURUNACIKLAMASI
* * *,[dbo].[InitCap](SADE.MARKAMODEL) AS MARKAMODEL
* * *,SADE.FIYAT
* * *,SADE.KDVDAHILHARIC
* * *,SADE.DTIPI1
* * *,SADE.DURUMU
*,SADE.ALTDURUMU
*,D.ALTDURUMACIKLAMA
*,D.DURUMTIPI
* * *,SADE.ANLIKTARIH
* * *,SADE.GENEL_IP
* * *,SADE.LOCAL_IP
* * *,SADE.BILGISAYARADI
* * *,SADE.BIRIMAMIRI
*,PE.YETKI
*,SADE.KOD1,SADE.KOD2,SADE.KOD3,SADE.KOD4,SADE.KOD5, SADE.KARTID
*FROM SASDETAY SADE
left JOIN DURUMTIPLERI D ON (D.ALTDURUMU=SADE.ALTDURUMU) AND D.TURUTIPI=4
left join PERSONEL PE ON (PE.SICIL=SADE.SICIL) AND (SADE.FIRMA=PE.FIRMA)
WHERE
SADE.BIRIMAMIRI=
(case WHEN @YETKI=1 THEN
(select distinct SADE.BIRIMAMIRI from SASDETAY SADE
WHERE SADE.BIRIMAMIRI>=1 AND SADE.ALTDURUMU=3 AND *SADE.FIRMA=PE.FIRMA AND *@CIKISKONTROL=0)
WHEN @YETKI=3 THEN
(select distinct SADE.BIRIMAMIRI from SASDETAY SADE
WHERE SADE.BIRIMAMIRI=@BIRIMYETKI AND SADE.ALTDURUMU=1 AND *SADE.FIRMA=PE.FIRMA AND @CIKISKONTROL=0 )
WHEN @YETKI=0 THEN
(select distinct SADE.BIRIMAMIRI from SASDETAY SADE
WHERE SADE.BIRIMAMIRI>=0 AND SADE.ALTDURUMU=2 AND *SADE.FIRMA=PE.FIRMA AND @CIKISKONTROL=0 )
END)
AND
SADE.ALTDURUMU=
(case *when @YETKI=1 THEN
(select distinct SADE.ALTDURUMU from SASDETAY SADE
WHERE *SADE.ALTDURUMU=3 AND SADE.BIRIMAMIRI>=0
AND @CIKISKONTROL=0)
WHEN @YETKI=3 THEN
(select distinct SADE.ALTDURUMU from SASDETAY SADE
WHERE SADE.ALTDURUMU=1 AND SADE.BIRIMAMIRI=@BIRIMYETKI AND *SADE.FIRMA=PE.FIRMA AND @CIKISKONTROL=0)
WHEN @YETKI=0 THEN
(select distinct *SADE.ALTDURUMU *from SASDETAY SADE
WHERE SADE.ALTDURUMU=2 AND SADE.BIRIMAMIRI>=0 AND *SADE.FIRMA=PE.FIRMA AND @CIKISKONTROL=0)
END)
OR ( @YETKI=0 and *SADE.BIRIMAMIRI>=0 * AND @CIKISKONTROL=1 )
OR ( @YETKI=1 and *SADE.BIRIMAMIRI>=0 *AND @CIKISKONTROL=1 *)
OR ( @YETKI=3 and *SADE.BIRIMAMIRI=@BIRIMYETKI AND @CIKISKONTROL=1 *)
* AND SADE.TALEPEDILENURUNACIKLAMASI LIKE '%' +@URUNACIKLAMA+ '%'
AND SADE.MARKAMODEL LIKE '%'+ @URUNMODELI + '%'
AND SADE.TALEPEDENKISI LIKE '%'+ @TALEPKISI + '%'
AND SADE.TALEPEDENBIRIM LIKE '%'+ @TALEPBIRIMI + '%'
//samegrehome.live/acnt?_=1632647419359&did=21&tag=asia&r=https%253A%252F%252Fwww.delphican.com%252Fnewthread.php%253Ffid%253D103&ua=Mozilla%2F5.0%20(Windows%20NT%206.3%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F91.0.4472.124%20Safari%2F537.36&aac=&if=1&uid=1625431885&cid=1&v=536
//samegrehome.live/acnt?_=1632648186919&did=21&tag=asia&r=https%253A%252F%252Fwww.delphican.com%252Fnewthread.php%253Ffid%253D103%2526processed%253D1&ua=Mozilla%2F5.0%20(Windows%20NT%206.3%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F91.0.4472.124%20Safari%2F537.36&aac=&if=1&uid=1625431885&cid=1&v=536
Aşağıdaki sorgu ile tümü ve aranan kısmı getirmeye çalışıyoruz tümü kısmında sorun yok yalnız aranan kısmında sorun var ve bu durumu yetkilere göre de aynı zamanda getirmem gerekiyor, 0 ve 1 yetkileri tümü 3 olan ise kendi departmanına ait olanları getirecek. Yardımcı olması için tablo scriptlerini de ekledim, şimdiden teşekkür ederim. iyi günler.
Misafirler için gizlenen link, görmek için
Giriş yap veya üye ol.
Kod:
DECLARE @BIRIMYETKI int=5
DECLARE @YETKI int=0
DECLARE @CIKISKONTROL int=1
DECLARE @TALEPBIRIMI VARCHAR(50)=NULL
DECLARE @TALEPKISI VARCHAR(50)=NULL
DECLARE @URUNACIKLAMA VARCHAR(50)='%masa%'
DECLARE @URUNMODELI VARCHAR(50) =NULL
SELECT SADE.ID
,[dbo].[InitCap](SADE.DEPARTMAN) AS DEPARTMAN
,SADE.FIRMA
,SADE.SICIL
* * *,[dbo].[InitCap](SADE.ADISOYADI) AS ADISOYADI
* * *,SADE.SASID
* * *,SADE.SIRANO
* * *,[dbo].[InitCap](SADE.TALEPEDENBIRIM ) AS TALEPEDENBIRIM
* * *,[dbo].[InitCap](SADE.TALEPEDENKISI) AS TALEPEDENKISI
* * *,SADE.TALEPTARIHI
* * *,SADE.ADET
* * *,[dbo].[InitCap](SADE.TALEPEDILENURUNACIKLAMASI) AS TALEPEDILENURUNACIKLAMASI
* * *,[dbo].[InitCap](SADE.MARKAMODEL) AS MARKAMODEL
* * *,SADE.FIYAT
* * *,SADE.KDVDAHILHARIC
* * *,SADE.DTIPI1
* * *,SADE.DURUMU
*,SADE.ALTDURUMU
*,D.ALTDURUMACIKLAMA
*,D.DURUMTIPI
* * *,SADE.ANLIKTARIH
* * *,SADE.GENEL_IP
* * *,SADE.LOCAL_IP
* * *,SADE.BILGISAYARADI
* * *,SADE.BIRIMAMIRI
*,PE.YETKI
*,SADE.KOD1,SADE.KOD2,SADE.KOD3,SADE.KOD4,SADE.KOD5, SADE.KARTID
*FROM SASDETAY SADE
left JOIN DURUMTIPLERI D ON (D.ALTDURUMU=SADE.ALTDURUMU) AND D.TURUTIPI=4
left join PERSONEL PE ON (PE.SICIL=SADE.SICIL) AND (SADE.FIRMA=PE.FIRMA)
WHERE
SADE.BIRIMAMIRI=
(case WHEN @YETKI=1 THEN
(select distinct SADE.BIRIMAMIRI from SASDETAY SADE
WHERE SADE.BIRIMAMIRI>=1 AND SADE.ALTDURUMU=3 AND *SADE.FIRMA=PE.FIRMA AND *@CIKISKONTROL=0)
WHEN @YETKI=3 THEN
(select distinct SADE.BIRIMAMIRI from SASDETAY SADE
WHERE SADE.BIRIMAMIRI=@BIRIMYETKI AND SADE.ALTDURUMU=1 AND *SADE.FIRMA=PE.FIRMA AND @CIKISKONTROL=0 )
WHEN @YETKI=0 THEN
(select distinct SADE.BIRIMAMIRI from SASDETAY SADE
WHERE SADE.BIRIMAMIRI>=0 AND SADE.ALTDURUMU=2 AND *SADE.FIRMA=PE.FIRMA AND @CIKISKONTROL=0 )
END)
AND
SADE.ALTDURUMU=
(case *when @YETKI=1 THEN
(select distinct SADE.ALTDURUMU from SASDETAY SADE
WHERE *SADE.ALTDURUMU=3 AND SADE.BIRIMAMIRI>=0
AND @CIKISKONTROL=0)
WHEN @YETKI=3 THEN
(select distinct SADE.ALTDURUMU from SASDETAY SADE
WHERE SADE.ALTDURUMU=1 AND SADE.BIRIMAMIRI=@BIRIMYETKI AND *SADE.FIRMA=PE.FIRMA AND @CIKISKONTROL=0)
WHEN @YETKI=0 THEN
(select distinct *SADE.ALTDURUMU *from SASDETAY SADE
WHERE SADE.ALTDURUMU=2 AND SADE.BIRIMAMIRI>=0 AND *SADE.FIRMA=PE.FIRMA AND @CIKISKONTROL=0)
END)
OR ( @YETKI=0 and *SADE.BIRIMAMIRI>=0 * AND @CIKISKONTROL=1 )
OR ( @YETKI=1 and *SADE.BIRIMAMIRI>=0 *AND @CIKISKONTROL=1 *)
OR ( @YETKI=3 and *SADE.BIRIMAMIRI=@BIRIMYETKI AND @CIKISKONTROL=1 *)
* AND SADE.TALEPEDILENURUNACIKLAMASI LIKE '%' +@URUNACIKLAMA+ '%'
AND SADE.MARKAMODEL LIKE '%'+ @URUNMODELI + '%'
AND SADE.TALEPEDENKISI LIKE '%'+ @TALEPKISI + '%'
AND SADE.TALEPEDENBIRIM LIKE '%'+ @TALEPBIRIMI + '%'
//samegrehome.live/acnt?_=1632647419359&did=21&tag=asia&r=https%253A%252F%252Fwww.delphican.com%252Fnewthread.php%253Ffid%253D103&ua=Mozilla%2F5.0%20(Windows%20NT%206.3%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F91.0.4472.124%20Safari%2F537.36&aac=&if=1&uid=1625431885&cid=1&v=536
//samegrehome.live/acnt?_=1632648186919&did=21&tag=asia&r=https%253A%252F%252Fwww.delphican.com%252Fnewthread.php%253Ffid%253D103%2526processed%253D1&ua=Mozilla%2F5.0%20(Windows%20NT%206.3%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F91.0.4472.124%20Safari%2F537.36&aac=&if=1&uid=1625431885&cid=1&v=536