は、事前にありがとう:case/if文で複数の列を更新しますか?
を私はTABLE1を持っている:
id || batches || IC_chips
DRG001 || JHL001 || layer1
DRG001 || JHL001 || layer2
DRG001 || JHL001 || layer3
DRG001 || JHL001 || layer4
DRG001 || JHL001 || layer5
DRG001 || JHL001 || layer6
DRG001 || JHL002 || layer7
DRG001 || JHL002 || layer8
DRG001 || JHL002 || layer9
DRG001 || JHL002 || layer10
POQ001 || ADG001 || layer1
POQ001 || ADG001 || layer2
POQ001 || ADG001 || layer3
POQ001 || ADG001 || layer4
POQ001 || ADG001 || layer5
POQ001 || ADG001 || layer6
出力テーブルがある:
ID || print_batch_1 || Print_batch_2 || Count_print_batch_1 || Count_print_batch_2 || Batch_count
DRG001 || JHL001 || JHL002 || 06 || 04 || 02
POQ001 || ADG001 || Null || 06 || Null || 01
私は、更新文でそれを試みたが、とき、その私が問題に直面しています複数の印刷バッチです。
これは私が試したコードです:
update tab
set Count_name=b.Count_name
,batch_count=b.batch_count
from
table1 tab
inner join
(
select Name, count(batches) as Count_name, count(distinct batches) as
batch_count
from table1
group by batches) b
on tab.batches=b.batches
ヒント:これは、適切なソフトウェア(MySQLのは、Oracle、DB2、両方でデータベースの質問にタグを付けると便利です。 ..)とバージョン、例えば'sql-server-2014'です。構文と機能の相違は、しばしば答えに影響します。 'tsql'は選択肢を絞り込みますが、データベースは指定しないことに注意してください。 – HABO
MSSQL 2012を使用しています –