none
Bir tablodan gelen verilerle başka tabloda UPDATE yapma RRS feed

  • Soru

  • Herkese Merhaba Arkadaşlar,

    TABLO1
    Tarih Saat PD PQ PS
    23/12/2018 24 550 185 0
    23/12/2018 23 550 185 0
    23/12/2018 23 550 185 0
    23/12/2018 23 550 185 0
    23/12/2018 23 550 185 0
    23/12/2018 23 550 185 0
    23/12/2018 22 550 185 0
    23/12/2018 22 550 92 0
    23/12/2018 3 550 92 0
    23/12/2018 3 550 92 0
    23/12/2018 3 550 92 0
    23/12/2018 3 550 92 0
    23/12/2018 3 550 92 0
    23/12/2018 3 550 6 0
    23/12/2018 3 550 6 0
    23/12/2018 3 550 6 0
    23/12/2018 3 550 6 0
    23/12/2018 3 550 6 0
    TABLO2
    Tarih Saat GPD GPQ GPS DURUM
    23/12/2018 1        
    23/12/2018 2        
    23/12/2018 3        
    23/12/2018 4        
    23/12/2018 5        
    23/12/2018 6        
    23/12/2018 7        
    23/12/2018 8        
    23/12/2018 9        
    23/12/2018 10        
    23/12/2018 11        
    23/12/2018 12        
    23/12/2018 13        
    23/12/2018 14        
    23/12/2018 15        
    23/12/2018 16        
    23/12/2018 17        
    23/12/2018 18        
    23/12/2018 19        
    23/12/2018 20        
    23/12/2018 21        
    23/12/2018 22        
    23/12/2018 23        
    23/12/2018 24        

    Yukarıda görüldüğü gibi 2 adet tablom var.  Tablo1 deki tarih,saat,PD,PQ,PS içeriğine bakarak TABLO2 de güncelleme yapmak istiyorum.

    ÖR:

    1-      Tablo1 de 23/12/2018 tarihinde saat 3 de 2 farklı tip PD,PQ,PS değerleri vardır. Bu yüzden Tablo2 de güncelleme yaparken 23/12/2018 saat 3 deki GPD,GPQ,GPS nin içeriğine 0(sıfır) , DURUM kolonuna da KARMA yazdırmak istiyorum.

    2-      Eğer Tablo1 de herhangi bir tarihe ait bilgi yoksa Tablo2 de yine GPD,GPQ,GPS nin içeriğine 0(sıfır) , DURUM kolonuna da KARMA yazdırmak istiyorum.

    3-      Eğer Tablo1 de herhangi bir tarih ve saate ait tüm PD,PQ ve PS değerleri aynı ise örnekteki saat 23 ve 24 deki gibi.

     O zaman Tablo1 den çekilen PD degerini Tablo2 de GPD ye

    Tablo1 den çekilen PQ degerini Tablo2 de GPQ ye

    Tablo1 den çekilen PS degerini Tablo2 de GPS ye

    DURUM kolonuna da TEKTIP yazdırmak istiyorum.

    Yardımlarınız için şimdiden teşekkür ederim. Herkese iyi çalışmalar dilerim.


    25 Aralık 2018 Salı 12:20

Yanıtlar

  • WITH t1 AS (SELECT DISTINCT * FROM tablo1),
    t2 AS (
    	SELECT Tarih, Saat, 
    		MIN(PD) AS PD, 
    		MIN(PQ) AS PQ, 
    		MIN(PS) AS PS 
    	FROM t1 
    	GROUP BY Tarih, Saat 
    	HAVING COUNT(*) = 1)
    UPDATE Tablo2 SET 
    	GPD = COALESCE(t2.PD,0),
    	GPQ = COALESCE(t2.PQ,0),
    	GPS = COALESCE(t2.PS,0),
    	Durum = CASE 
    	WHEN t2.Tarih IS NULL THEN 'KARMA'
    	ELSE 'TEKTIP'
    	END
    FROM Tablo2 tb2
    LEFT JOIN t2 ON tb2.Tarih = t2.Tarih 
    	AND tb2.Saat = t2.Saat
    WHERE 1=1;

    • Yanıt Olarak Öneren Agha HUSEYNOV 25 Aralık 2018 Salı 22:07
    • Yanıt Olarak İşaretleyen DagdeleN 27 Aralık 2018 Perşembe 10:29
    25 Aralık 2018 Salı 14:47

Tüm Yanıtlar

  • WITH t1 AS (SELECT DISTINCT * FROM tablo1),
    t2 AS (
    	SELECT Tarih, Saat, 
    		MIN(PD) AS PD, 
    		MIN(PQ) AS PQ, 
    		MIN(PS) AS PS 
    	FROM t1 
    	GROUP BY Tarih, Saat 
    	HAVING COUNT(*) = 1)
    UPDATE Tablo2 SET 
    	GPD = COALESCE(t2.PD,0),
    	GPQ = COALESCE(t2.PQ,0),
    	GPS = COALESCE(t2.PS,0),
    	Durum = CASE 
    	WHEN t2.Tarih IS NULL THEN 'KARMA'
    	ELSE 'TEKTIP'
    	END
    FROM Tablo2 tb2
    LEFT JOIN t2 ON tb2.Tarih = t2.Tarih 
    	AND tb2.Saat = t2.Saat
    WHERE 1=1;

    • Yanıt Olarak Öneren Agha HUSEYNOV 25 Aralık 2018 Salı 22:07
    • Yanıt Olarak İşaretleyen DagdeleN 27 Aralık 2018 Perşembe 10:29
    25 Aralık 2018 Salı 14:47
  • Merhaba ,

    İlginiz için teşekkür ederim ama sizin önerdiğiniz çözümde tüm DURUM lar KARMA ve tüm GPD,GPQ,GPS değerleri 0 oluyor.

    -----

    NOT: Forumun İngilizce kısmında cevabı buldum. Herkese teşekkür ederim. İyi çalışmalar dilerim.

    • Düzenleyen DagdeleN 26 Aralık 2018 Çarşamba 07:45
    • Yanıt Olarak İşaretleyen DagdeleN 26 Aralık 2018 Çarşamba 07:45
    • Yanıt İşaretini Geri Alan DagdeleN 27 Aralık 2018 Perşembe 10:28
    26 Aralık 2018 Çarşamba 05:51
  • Merhaba ,

    İlginiz için teşekkür ederim ama sizin önerdiğiniz çözümde tüm DURUM lar KARMA ve tüm GPD,GPQ,GPS değerleri 0 oluyor.

    -----

    NOT: Forumun İngilizce kısmında cevabı buldum. Herkese teşekkür ederim. İyi çalışmalar dilerim.

    Sanirim sen kodu değiştirerek kullanırken hata yaptın. Benim verdigim kod tam istediğini yapıyor. Sadece 23 ve 24 TEKTIP tanımına uyuyor  ve onları degerleriyle birlikte TEKTIP digerlerini 0 ve KARMA gösteriyor. 

    Burada DBFiddle Demosu var.

    Alttaki satırları görmek icin ... 'a tıkla.

    Not: Neden hem benim cevabimi, hem de istediğin gibi calismadigini belirttigin mesaji "cevap" olarak işaretledin? 



    • Düzenleyen CetinBasoz 26 Aralık 2018 Çarşamba 14:00
    26 Aralık 2018 Çarşamba 13:58
  • Merhaba,

    İlginiz için teşekkür ederim.

    Belirttiğiniz gibi hata bende.

    İyi çalışmalar dilerim.

    27 Aralık 2018 Perşembe 10:30