私はこのSQLクエリを書きました
update temp_calpoints1
set perwet = (select perwet
from process
where processid = temp_calpoints1.processid)
現在のところ、以下のようにすべてのユーザーに対して10パーセント更新されます。
orderid processid uid ordervalue perwet
---------------------------------------------------------------------------------
1 1 1 10000 10
1 1 2 10000 10
1 1 3 10000 10
1 2 1 10000 10
1 2 2 10000 10
1 3 1 10000 10
複数のユーザーが同じ順序で1つのプロセスに関与している場合は、パーセントを均等に分割する必要があります
つまり、このように挿入する必要があります
orderid processid uid ordervalue perwet
------------------------------------------------------------------------------
1 1 1 10000 3.33
1 1 2 10000 3.33
1 1 3 10000 3.33
1 2 1 10000 5.00
1 2 2 10000 5.00
1 3 1 10000 10.00
何か案が?
テーブルの構造
CREATE TABLE [dbo].[temp_calpoints1](
[orderid] [int] NULL,
[processid] [int] NULL,
[uid] [int] NULL,
[ordervalue] [bigint] NULL,
[perwet] [float] NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[process](
[processid] [float] NULL,
[processdesc] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[perwet] [int] NULL
) ON [PRIMARY]