Delphi Can
veri aktarımı esnasında kontrol - Baskı Önizleme

+- Delphi Can (http://www.delphican.com)
+-- Forum: Veri Tabanı (http://www.delphican.com/forumdisplay.php?fid=4)
+--- Forum: MS SQL Server (http://www.delphican.com/forumdisplay.php?fid=103)
+--- Konu Başlığı: veri aktarımı esnasında kontrol (/showthread.php?tid=4044)



veri aktarımı esnasında kontrol - denizfatihi - 07-10-2019

Merhaba,
Bir veri aktarımı esnasında kontrol işlemi yaparken sorgu nasıl olmalıdır, örnek sorgu aşağıdaki gibidir.
çift not in nasıl kullanılır ?
declare @invoice_id int = (SELECT TOP 1 A.ID FROM FATURADETAY A 
WHERE A.GMHK =@gmhk AND 1=1 
and A.ID  NOT IN ( SELECT invoice_id FROM accounts_recievable )
--and A.EVRAKNO  NOT IN ( SELECT evrakno FROM accounts_recievable ) // 2.Not in nasıl olmalı veya tek sorgu halinde 
ORDER BY A.ID,A.VADETARIHI)



veri aktarımı esnasında kontrol - serdar - 07-10-2019

Kardes ne sormak istedigin acik ve net degil.
2. NOT IN nasil olmali derken ne sarta gore nasil olmali?
Soruna su haliyle derimki NOT IN den sonra herhangi bir select ifadesi yaz gitsin. Cunku nasil bir sonuc istedigin ve sartlarin nedir belli degil.
Bir veri aktarımı esnasında kontrol işlemi yaparken sorgu nasıl olmalıdır diye sormussun. Neyi kontrol ediyorsun veri aktarimi ile kastin ne?  Kodlamanda degiskene bir select deyimiyle sartlarinida subquery yoluyla vererek deger atamaya calismissin. Ustelik And 1=1 sartinin orada hicbir anlami yok. OR 1=1 olsa idi anlamliydi.
Sorununu biraz daha acarsan yardimci olabiliriz


veri aktarımı esnasında kontrol - denizfatihi - 08-10-2019

Merhaba,

Sorgunun özeti bir sorgu içerisinde 2 adet not in kullanılabilir mi ? veya nasıl olmalı ?

Teşekkür ederim.


Cvp: veri aktarımı esnasında kontrol - uparlayan - 08-10-2019

(08-10-2019, Saat: 11:24)denizfatihi Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,

Sorgunun özeti bir sorgu içerisinde 2 adet not in kullanılabilir mi ? veya nasıl olmalı ?

Teşekkür ederim.

Elbette...

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.


Cvp: veri aktarımı esnasında kontrol - serdar - 08-10-2019

(08-10-2019, Saat: 11:24)denizfatihi Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,

Sorgunun özeti bir sorgu içerisinde 2 adet not in kullanılabilir mi ? veya nasıl olmalı ?

Teşekkür ederim.

Araya AND yada OR operatoru koyarak istediğiniz kadar NOT IN yada IN kullanabilirisiniz.  

select *
from tbl1
where column1 NOT IN  (select columnA from tbl2 where columnA>500 ) and 
      column2 NOT IN ('x','y','z')  and column3 NOT IN (select columnB from tbl3) AND
      (column4 NOT IN (select columnK from tbl4)  OR column5 NOT IN (select columnN from tbl5) )

IN operatörünün kullanımını şu linkten de Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. inceleyebilirsiniz


Bazı durumlarda, birden fazla sütun üstünden kayıtları ilintilendirmek gerekebilir. Bu tür
durumlarda EXISTS ve NOT EXITS yapılarından yararlanılabilir. Bunun yanı sıra, bu
iki yapı içerideki SELECT ifadesi seçme yapmaz, sadece değer dönüp dönmediğine bakmak
için işlemler yapar.

EXISTS kullanıldığında, içerideki sorguda, bir veya daha fazla kayıt dönerse, dışarıdaki
sorgu çalıştırılır (TRUE değer üretir). Hiç kayıt dönmezse, dışarıdaki sorgu çalıştırılmaz
(FALSE değer üretir). NOT EXISTS bunun tersine içerideki sorgunun sonucunda sıfır
kayıt dönüyorsa, dışarıdaki sorgunun çalıştırılması için kullanılır. Ancak bu iki ifade de
TRUE ya da FALSE (mantıksal doğru ve mantıksal yanlış) dışında değer döndüremedikleri
için kullanılamayacağı yerler vardır.

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

-- Uses AdventureWorks  
 
SELECT a.FirstName, a.LastName  
FROM Person.Person AS a  
WHERE a.LastName IN  
(SELECT a.LastName  
   FROM HumanResources.Employee AS b  
   WHERE a.BusinessEntityID = b.BusinessEntityID  
   AND a.LastName = 'Johnson') 

-- Uses AdventureWorks  
 
SELECT a.FirstName, a.LastName  
FROM Person.Person AS a  
WHERE EXISTS  
(SELECT *   
   FROM HumanResources.Employee AS b  
   WHERE a.BusinessEntityID = b.BusinessEntityID  
   AND a.LastName = 'Johnson') 



veri aktarımı esnasında kontrol - denizfatihi - 08-10-2019

Sayın Serdar bey, bilgi ve desteğiniz için çok teşekkür ederim.

iyi çalışmalar,


Cvp: veri aktarımı esnasında kontrol - denizfatihi - 18-10-2019

  • declare @invoice_id int = (SELECT TOP 1 A.ID FROM FATURADETAY AWHERE NOT EXISTS(SELECT * FROM accounts_recievable bWHERE A.ID=b.invoice_id AND b.accounts_recievable=A.EVRAKNO) AND A.GMHK =@gmhk AND 1=1 )
Merhaba,

Yukarıdaki  şekilde  yapınca tam istediğim  oldu, bilki birilerinin işine yarar.

Kolay gelsin,