2

テーブル OD_REFERENCE (OD_COL_1 から 5) があります

REFERENCE には 5 つの列があり、OD_COL_4 は注文番号 (例: '12345') に等しく、OD_COL_5 には注文の詳細があります。

ROW  OD_COL_4  OD_COL_5 

1     12345       11

2     12345       11

3     12345         <---no number 

4     12345       99

5     12346       99

6     12347       99

一部の注文番号には空白 (値なし) があり、その注文列の最大番号に手動で更新する必要があります。

詳細が空白の注文番号を検索するには

SELECT DISTINCT OD_COL_4 FROM OD_REFERENCE

WHERE OD_COL_5 = ' '

次に、列の注文番号をメモ帳にコピーして、クエリを実行します。

SELECT DISTINCT OD_COL_5 FROM OD_REFERENCE

WHERE OD_COL_4 = '--and i paste the order number in here' 

次に、各注文を手動で確認し、すべての列の値をその列の最大値に更新します。したがって、注文 12345 では、すべてのフィールドを 99 に設定しました。

詳細が空白のすべての注文番号を取得し、その列に含まれる最大値で (一度に) 修正するスクリプトはありますか?

4

3 に答える 3

1

これは SQL Server で機能するはずです。

update a
    set OD_COL_5 = b.MaxOD_COL_5
from orders a
inner join(
            select OD_COL_4, max(OD_COL_5) as MaxOD_COL_5
            from orders
            where coalesce(OD_COL_5, '') <> ''
            group by OD_COL_4
          ) b
on a.OD_COL_4 = b.OD_COL_4  
where coalesce(OD_COL_5, '') = ''
于 2012-10-11T17:23:46.373 に答える
0
update od_reference oref
set od_col_5 = (
    select max(od_col_5)
    from od_reference
    where od_col_4 = oref.od_col_4
    ) s
where od_col_5 = ' '
于 2012-10-11T17:04:50.430 に答える
0

これはあなたが求めているものかもしれません。これは SqlServer Update で機能するはずです。 od_col4 = t1.od_col4) としての高値 od_reference t1 から t1.od_col5 = '') として n o.od_col4 = n.odcol4 で o.od_col5 = ''

于 2012-10-11T17:30:49.833 に答える