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
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;
ここでそれを実行したとき、それはこのクエリを実行するよりも多くの行を返します。
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;
私の目的から行を取得することですsaledetail
テーブルとそれに対応するのを見つける priceperunit, taxid where productid, expdate, batchno, mrp
が一致します。
問題は同じ(productid, expdate, batchno, mrp)
異なっていますtaxid
終了するようにレコードが欲しい以上になります。それを減らす方法。あなたは
上記のようにした後にのみ1 2条件を記述する必要が
私に両方のテーブルのデータを送信します1-1マッチどのような一致する行が正しいかを判断するのに役立つ質問の情報を提供していないため、これらは完全には不明です。 –
質問があいまいなので、 "GROUP BY"を使用して繰り返し行を削除してみてください。 –
なぜあなたは重複した行を持っているのか理解していないのに 'GROUP BY'(または' DISTINCT')を使わないでください。 –