1

これは、ストアド プロシージャの部分的なスクリプトです。次の「P4」(など)の列数を自動的に更新できるようにしたい(以下のデータ結果):

/*
RESULTS:
66,
221,
0
*/


DECLARE
@APP_TOTAL INT
, @DB_TOTAL INT
, @OS_TOTAL INT
, @YEAR INT

SET @APP_TOTAL = (SELECT COUNT(*) 
  FROM [db_eCAM].[dbo].[tbl_SecChecks]
WHERE LAYER = 'APP' AND [ENABLE] = 1)
PRINT @APP_TOTAL

SET @DB_TOTAL = (SELECT COUNT(*) 
  FROM [db_eCAM].[dbo].[tbl_SecChecks]
WHERE LAYER = 'DB' AND [ENABLE] = 1)
PRINT @DB_TOTAL

SET @OS_TOTAL = (SELECT COUNT(*) 
  FROM [db_eCAM].[dbo].[tbl_SecChecks]
WHERE LAYER = 'OS' AND [ENABLE] = 1)
PRINT @OS_TOTAL

SET @YEAR = 2013

ここに画像の説明を入力

4

1 に答える 1

2

多分このようなもの:

update mytable
    set p4 = case
        when description = 'APP_TOTAL' then @APP_TOTAL
        when description = 'DB_TOTAL' then @DB_TOTAL
        when description = 'OS' then @OS_TOTAL
    end
where description in ('APP_TOTAL', 'DB_TOTAL', 'OS');

デモ: http://www.sqlfiddle.com/#!3/f575c/1

期間を # 動的にするには、次のような動的 SQL を使用できます: http://www.sqlfiddle.com/#!3/f575c/5

于 2012-04-25T20:17:52.177 に答える