我尝试根据条件在存储过程中将值插入到表中:
alter procedure service_report_st2
as
insert into Service_report_step1(appointment_or_house)
select
case
when Service_report_step1.card_uid in(select card_uid from visits where vidpos_kod = 'A')
then '1'
when Service_report_step1.card_uid in(select card_uid from visits where vidpos_kod = 'B')
then '2'
else '3'
end
错误在Service_report_step1.card_uid
找不到,但这是Service_report_step1
表中的第一列。 appointment_or_house
是第二列,如果visits
表格在card_uid
中包含Service_report_step1
,则应包含“1”,“2”或“3”。
我很感激任何帮助!
简短的例子:
Visits
表有2列:Card_uid和vidpos_kod
card_uid vidpos_kod
111-111 A
222-222 B
333-333 A
444-444 C
现在Service_report_step1
表有card_uid(包含所有可能卡的列)和appointment_or_house列
card_uid appointment_or_house
111-111 1
222-222 2
333-333 1
444-444 1
所以,如果card_uids
中的Service_report_step1
与Visits
中的appointment_or_house
相同,我会根据vidpos_kod
中的Visits
确定A, C
列( B
为'1',Service_report_step1
为'2')
我需要正确插入{{1}}所有数据,例如。
答案 0 :(得分:2)
您正在使用select语句,但没有FROM clause
您需要指定
INSERT INTO ...
SELECT *
FROM ...
或类似的东西。
答案 1 :(得分:2)
insert into Service_report_step1(appointment_or_house)
select
case vidpos_kod
when 'A' then '1'
when 'B' then '2'
when 'C' then '3'
end
from visits
where vidpos_kod like '[ABC]'