2016-04-05 11 views
0

Benim sorgu:tam satırları alın

SELECT 
    sd.saledetaildate, sd.saledetailtime, sd.shopid, 
    sd.productid,sd.unitid, sd.expdate, sd.batchno, 
    sd.mrp, sd.totalprice, sd.qty, sd.looseqty 
FROM saledetail sd 
WHERE sd.saledetaildate <= '2016-03-31' 
ORDER BY sd.saledetaildate, sd.saledetailtime; 

Amacım satırları almak için geçerli: Burada

CREATE OR REPLACE VIEW saledetailfortax AS 
    SELECT 
     sd.saledetaildate, sd.saledetailtime, sd.shopid, sd.productid, 
     sd.unitid, sd.expdate, sd.batchno, sd.mrp, sd.totalprice, sd.qty, 
     sd.looseqty, ord.priceperunit as priceperunit, ord.taxid 
    FROM 
     saledetail sd LEFT JOIN orvrcvdetailfortax ord 
           ON sd.productid = ord.productid 
            AND sd.expdate = ord.expdate 
            AND sd.batchno = ord.batchno 
            AND sd.mrp = ord.mrp 
    WHERE sd.saledetaildate <= '2016-03-31' 
    ORDER BY sd.saledetaildate , sd.saledetailtime; 

bu sorguyu yürütmek olmadığı kadar fazla satır döndürür yürüttüğünüzde saledetail tablosu ve karşılık gelen priceperunit, taxid where productid, expdate, batchno, mrp eşleşmesini bulun.

sorunu aynı (productid, expdate, batchno, mrp) farklı taxid çıkış öyle kayıt daha fazla arzu geliyor. Nasıl indirilir.

+0

arasında bana veri göndermek yukarıda açık cevap Eğer bir var bu yüzden doğru 'join' koşullarını kullanmak olacaktır gibi sonra üzerinde sadece bir 2 koşulu yazmak zorunda 1-1 maç. Bunların ne olduğu tamamen açık değil, çünkü hangi eşleşen satırın doğru olanı belirlemesine yardımcı olabilecek soruda hiçbir bilgi vermiyorsunuz. –

+0

Sorunuz çok muğlak olduğundan, yinelenen satırları kaldırmak için "GROUP BY" kullanmayı deneyebilirsiniz. –

+0

Lütfen "GROUP BY" (ya da "DISTINCT") 'i anlamadan kullanmayın ** neden ** yinelenen satırlarınız var. –

cevap

0
CREATE OR REPLACE VIEW saledetailfortax AS 
    SELECT 
     sd.saledetaildate, sd.saledetailtime, sd.shopid, sd.productid, 
     sd.unitid, sd.expdate, sd.batchno, sd.mrp, sd.totalprice, 
     sd.qty, sd.looseqty, ord.priceperunit as priceperunit, ord.taxid 
    FROM saledetail sd LEFT JOIN orvrcvdetailfortax ord 
          ON sd.productid = ord.productid 
    WHERE sd.saledetaildate <= '2016-03-31' 
    ORDER BY sd.saledetaildate , sd.saledetailtime; 

diğer

hem masanın