我有一个ProjectTable和一个ProjectMaterial映射表。每个项目都可以有多种不同的材料。
离;
ProjectmaterialId ProjectId MaterialCode
1 4118 A
2 2135 B
3 4118 B
......
如何从值列表中更新一个特定项目的所有MaterialCode? 我希望结果应该是这样的:
ProjectmaterialId ProjectId MaterialCode
1 4118 c
2 2135 B
3 4118 D
......
你意识到我从列表中更新了projectId 4118,其中包含c,D值... 我收到用户在View上更新的值的列表,我需要使用dapper进行此sql查询以更新数据库。
提前致谢。
答案 0 :(得分:0)
我希望它可以帮到你
DECLARE @ProjectTable TABLE(ProjectmaterialId INT , ProjectId INT, MaterialCode VARCHAR(2))
INSERT INTO @ProjectTable
SELECT 1, 4118, 'A' union all
SELECT 2, 2135, 'B' union all
SELECT 3, 4118, 'B'
DECLARE @ProjectMaterial TABLE(ProjectmaterialId INT , ProjectId INT, MaterialCode VARCHAR(2))
INSERT INTO @ProjectMaterial
SELECT 1, 4118 , 'C' union all
SELECT 2, 2135 , 'B' union all
SELECT 3, 4118 , 'D'
SELECT * from @ProjectTable
SELECT * from @ProjectMaterial
UPDATE A
SET MaterialCode=B.MaterialCode
FROM @ProjectTable A
INNER JOIN @ProjectTable B
ON A.ProjectmaterialId=B.ProjectmaterialId
SELECT * FROM @ProjectMaterial