-1

「read_barcodetolid」と「serial_barcode」の 2 つのテーブルがあります。両方に共通の ordernum フィールドがあります。行を選択したいのですが、繰り返しの値を持ちたくないので、最初は次のクエリを使用しました。

SELECT  distinct(t1.ordernum)
                 , t1.tarikh,
                   t2.city,
                   t2.officeNum,
                   t2.provience
         FROM read_barcodetolid t1
         join serial_barcode t2 on t1.ordernum=t2.ordernum

ordernum フィールドだけで問題なく動作します。しかし、都市のような別のフィールドを追加すると、繰り返し記録が作成されます。

それから私はこれを書きました:

SELECT DISTINCT (
        SELECT DISTINCT TOP (1) ordernum
        FROM read_barcodetolid
        WHERE (ordernum = seri.ordernum)
        ORDER BY ordernum DESC
        ) AS ordernum,
    (
        SELECT TOP (1) seri.officeNum
        FROM read_barcodetolid AS read_barcodetolid_2
        WHERE (ordernum = seri.ordernum)
        ORDER BY ordernum DESC
        ) AS officeNum,
    (
        SELECT TOP (1) provience
        FROM serial_barcode
        WHERE (ordernum = seri.ordernum)
        ) AS provience,
    (
        SELECT TOP (1) city
        FROM serial_barcode AS serial_barcode_1
        WHERE (ordernum = seri.ordernum)
        ) AS city,
    (
        SELECT TOP (1) tarikh
        FROM read_barcodetolid AS read_barcodetolid_1
        WHERE (ordernum = seri.ordernum)
        ) AS tarikh
FROM serial_barcode AS seri
WHERE (ordernum IS NOT NULL)
ORDER BY tarikh DESC

結果を返しますが、最後にいくつかのNULLレコードが表示され、「where ordernum IS NOT NULL」を使用すると機能しません

私に何ができる?余分な繰り返しレコードを取り除くためのより良い解決策はありますか?

4

1 に答える 1