我创建了一个表,它将组合来自多个视图的数据。所以我需要创建一个存储过程,它将从视图中检索并更新表。存储过程应该能够确定记录是否存在,并且如果记录不存在则向表中添加新行,或者如果存在这样的记录则更新记录。
请协助。
让我们将目标表用作表A和视图1,视图2和视图3。
表1 :
Project_Num(PK)|Region |Area
10001 |Gauteng|Johannesburg
查看1 :
ID|Project_Num|Region |Project_Start_Date|Project_End_Date
1 |1001 |Gauteng|2013-07-19 |2014-09-21
2 |1001 |Gauteng|2013-07-27 |2014-10-23
在视图中,我有多个项目编号,但开始日期和结束日期不同。因此,我需要对所有项目编号进行分组,并选择1001项目编号的最小开始日期和最大结束日期。我跑了这句话:
select
Project_Num, region,
min(start_date) as Start_Date,
max(End_Date) as End Date
from
TableA
where
Project_Num = 1001
结果是:
Project_Num|Region |Start_Date|End_Date
1001 |Gauteng|2013-07-19|2014-10-23
它有效。但是我不想创建列,因为我已经有一个包含需要填充的列的表。请帮助存储过程或插入/更新语句,我将从中创建一个存储过程。非常感谢您的帮助
由于