我有一个表格Age_cal、疫苗信息和Medical_information表如下:



我正在尝试编写一个存储过程,在其中,我将能够将这些值插入到基于vaccine_information表的名为菌苗的表中。
在med_info表中,我们有道布,年龄计算并存储在age_cal表中,并与年龄grp和medicalID (PK)一起存储。疫苗信息表有疫苗的名称和需要提供给哪个年龄组的疫苗。
因此,在将值插入疫苗表时,我希望给出值medicalId、给定日期、剂量no和设施名称作为参数。但是我想要根据他们所属的年龄组自动选择疫苗的名字。
我编写了以下存储过程,但是null值被插入到vaccine_name中。请帮助我使用存储过程插入疫苗名称。

ALTER PROCEDURE [dbo].[allot_v]
@MedicalID int,
@VaccineDate date,
@DoseNo int,
@facilityName varchar(20)
AS
BEGIN
DECLARE @injectvaccine varchar(20)
SET @injectvaccine = (SELECT dbo.VaccineInformation.VaccineName
FROM dbo.VaccineInformation, dbo.Age_Cal
WHERE dbo.Age_Cal.grp = dbo.VaccineInformation.grp
AND dbo.Age_Cal.MedicalID = @MedicalID)
INSERT INTO [dbo].[Vaccination]
([MedicalID], [VaccineName], [VaccineDate], [DoseNo], [FacilityName])
VALUES (@MedicalID, @injectvaccine, @VaccineDate, @DoseNo, @facilityName)
END发布于 2022-04-29 04:56:08
存储过程使用以下代码:
ALTER PROCEDURE [dbo].[allot_v]
@MedicalID int,
@VaccineDate date,
@DoseNo int,
@facilityName varchar(20)
AS
BEGIN
DECLARE @injectvaccine varchar(20)
SET @injectvaccine = (SELECT dbo.VaccineInformation.VaccineName
FROM dbo.VaccineInformation, dbo.Age_Cal
WHERE dbo.Age_Cal.grp = dbo.VaccineInformation.grp
AND dbo.Age_Cal.MedicalID = @MedicalID)
-- Insert statements for procedure here
INSERT INTO [dbo].[Vaccination]
([MedicalID], [VaccineName], [VaccineDate], [DoseNo], [FacilityName])
VALUES (@MedicalID, @injectvaccine, @VaccineDate, @DoseNo, @facilityName)
ENDhttps://stackoverflow.com/questions/72052866
复制相似问题