Selamlar,

Bildiğim kadarıyla kendi ürettiğiniz kolon isimlerini WHERE kısmında kullanamıyorsunuz. ORDER BY ve GROUP BY içinde kullanabiliyorsunuz. Ayrıca SELECT içine bir SELECT daha eklemek oldukça maliyetli. paket_detay tablosundan gelen her bir satır için içteki sorgu çalışacak.

Bunu INNER JOIN ile şöyle düzenleyebileceğinizi düşündüm:

SELECT siparis_durum_detay.sira_no, siparis_durum_detay.urun_kod, siparis_durum_detay.urun_ad, siparis_durum_detay.adet, SUM(paket_detay.adet) AS paketlenen
FROM siparis_durum
INNER JOIN paket_detay ON paket_detay.siparis_detay_sn = siparis_durum_detay.sira_no LEFT JOIN siparis_durum_detay ON siparis_durum.sira_no = siparis_durum_detay.master_no WHERE tesis_no = 'CSI0078' AND paket_detay.adet != 0 AND paket_detay.adet IS NOT NULL;

Bu durumda sadece tek bir sorgu çalışacak. Ayrıca "paketlenen" kolonuna göre bir koşul çalıştırmanız gerekmeyecek. Eğer "adet" kolonu sıfır veya null olmuyorsa sondaki kontrolleri kaldırabilirsiniz.

On 6/3/19 7:24 PM, Dr. Mucibirahman İLBUĞA wrote:
Merhabalar,

PostgreSQL kullanıyorum ve aşağıdaki gibi bir SQL cümlem var:

SELECT siparis_durum_detay.sira_no, siparis_durum_detay.urun_kod, siparis_durum_detay.urun_ad, siparis_durum_detay.adet, (SELECT SUM(adet) FROM paket_detay WHERE paket_detay.siparis_detay_sn = siparis_durum_detay.sira_no) AS *paketlenen* FROM siparis_durum LEFT JOIN siparis_durum_detay ON siparis_durum.sira_no = siparis_durum_detay.master_no WHERE tesis_no = 'CSI0078' AND *paketlenen*>0;

Burada hata alıyorum? paketlenen diye bir kolon yoktur diyor? Olması gerekir diye düşünüyorum...


--
Kolay gelsin,
Mucip:)


_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php


--
Ege
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap