「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」を使用すると機能しません
私に何ができる?余分な繰り返しレコードを取り除くためのより良い解決策はありますか?