0

SQL DB に 2 つのテーブル (たとえば、CD カタログ) があります。1 つのテーブル (毎晩再作成される) のレコードをメイン テーブルに配置したいと考えています。数量が 0 より大きいアイテムのみをメイン テーブルに配置したい。ただし、ナイトリー テーブルの一部のアイテムには、メイン テーブルのアイテムと同じ UPC バーコード フィールドがあります。すでにメイン テーブルにあるものの数量が 0 より大きい場合は、これらを入れたくありません。それ以外の場合は、数量が 0 より大きいすべてのエントリを毎晩からメイン テーブルに移動します。

これを行う方法に頭を悩ませることはできません。もちろん、数量が 0 を超えるものはすべてメイン テーブルにコピーされるように設定しましたが、これは、既にメイン テーブルにある同じアイテムの重複したリストを持つことができることを意味します (UPC に基づく重複)。

どうすればこれができるか知っている人はいますか?私の質問はそのままです:

INSERT INTO main ( id, title, artist, qty, barcode ) 
SELECT nightly.PID, 
       nightly.Title, 
       nightly.Artist, 
       nightly.QtyAvail, 
       nightly.UPC 
FROM nightly 
WHERE nightly.QtyAvail > 0;
4

1 に答える 1

2
insert into main ( id, title, artist, qty, barcode )
select
    n.PID, n.Title, n.Artist, n.QtyAvail, n.UPC 
from nightly as n
where
    n.QtyAvail > 0 and
    n.UPC not in (select T.barcode from main as T where T.qty > 0)
于 2012-10-25T06:42:48.580 に答える