UPDATE [asgdb01].[dbo].[info]
SET [FM] = SUM(a.[PAZARTESI] - b.[KOTA])
FROM [asgdb01].[dbo].[info] a, [asgdb01].[dbo].[kota] b
WHERE a.[WORK_TYPE]='IN' AND a.[NAME]='ALP'
UPDATE文のセットリストには表示されない場合がありますか?集計は、私はこれを実行すると、私は次のエラーを取得する
UPDATE [asgdb01].[dbo].[info]
SET [FM] = SUM(a.[PAZARTESI] - b.[KOTA])
FROM [asgdb01].[dbo].[info] a, [asgdb01].[dbo].[kota] b
WHERE a.[WORK_TYPE]='IN' AND a.[NAME]='ALP'
UPDATE文のセットリストには表示されない場合がありますか?集計は、私はこれを実行すると、私は次のエラーを取得する
私が推測しているように(他の人が指摘しているように)あなたは本当にこのアップデートのデカルトを望んでいないので、クエリに "id"を追加しましたので、いくつか修正する必要がありますが、右パス上で
;with temp as (
select a.id, SUM(a.pazartesi - b.kota) as newTotal
from [asgdb01].[dbo].[info] a join [asgdb01].[dbo].[kota] b
on a.id = b.id
where a.work_type='in' and a.name='alp')
update a
set fm = t.newTotal
from [asgdb01].[dbo].[info] a join temp t on a.id = t.id
私はtempでIDでグループ化しなければなりませんでした。ファンタスティックな答え。 –
+1 [CTEs](https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql)とは対照的に、エレガントで優れたパフォーマンスのソリューションです[CROSS]またはインラインサブクエリを使用している[多数](https://stackoverflow.com/questions/25937315/)その他の方法 – dakab
実際にそのデカルト積をしたいですか?また、どのRDBMSを使用していますか? – Lamak
私はmssqlを使っています。私は、異なるテーブルから来るpazartesiとkotaの間の差し引きをしたいと思います。 –
私はあなたが2つの異なるテーブルを使いたいと思いますが、それらの間に 'JOIN'条件を使用していないことを知っていますか? – Lamak