ユースケースによっては、これはおそらく良い考えではありません。「カウント」を計算列として作成するか、ベース テーブルから完全に除外して、カウント列を含むビューを作成することをお勧めします。また、Count のように、予約語でもある名前の列を持つことは一般的に避けます。
ただし、本当にやりたい場合は、1 つのクエリで実行できます。私たちが同じページにいることを確認するために、あなたは閉店時間だけでグループ化しようとしていたと思います。アカウントとアイテムはグループに含まれません(したがって、同じ閉店時間で別のアイテムの場合はカウントされます) 、しかし、対象のアカウントとアイテムのみを更新できるようにしたい。
その場合、おおよそ次のようになります
with cte1 as
(select
closetime, COUNT(*) as numCount
from dbo.[statement]
group by closetime)
update dbo.[statement]
set [count] = cte1.numCount
from dbo.[statement] as sd
join cte1
on sd.closetime = cte1.closetime
where
sd.account = <your account num>
and sd.item = <your item>
編集:
コメントからあなたが何を望んでいるかを正しく理解できれば、次のようなクエリを使用できます。
with cte1 as
(select
closetime, COUNT(*) as numCount
from dbo.[statement]
group by closetime)
select sd.*, --I normally would advise not using * in production
cte1.numCount as [Count]
from statement as sd
join cte1
on sd.closetime = cte1.closetime
where
sd.account = <your account num>
and sd.item = <your item>
これは CTE を使用しますが、単一の SQL ステートメントであり、選択したアカウント番号とアイテムのカウントをクローズタイムまでに表示します。