2012-02-28 53 views
-1
insert into patient_record(patient_no, patient_name, datetime_of_birth, 
          GP_unique_no, GP_name, GP_address,complaint, 
          treatment, doctor, datetime_treatment_started, 
          datetime_treatment_ended) 

values(13, 'Sophie', '1955-05-13', 'G202', 
     **select name_of_doctor from gp_doctor where unique_no=G202**, 
     'Yorkshire', 'Broken right arm', 'Plaster Arm', 'Peter Parker', 
     '2012-01-25','2012-01-29') 

我不知道如何添加G202。任何想法?如何在SQL Server 2005的值插入查询中使用select查询

回答

5

Asuming unique_no是独一无二的,你可以选择记录来获取名称

insert into patient_record(patient_no, patient_name, datetime_of_birth, 
          GP_unique_no, GP_name, GP_address,complaint, 
          treatment, doctor, datetime_treatment_started, 
          datetime_treatment_ended) 

SELECT 
    13, 
    'Sophie', 
    '1955-05-13', 
    'G202', 
    name_of_doctor, 
    'Yorkshire', 
    'Broken right arm', 
    'Plaster Arm', 
    'Peter Parker', 
    '2012-01-25','2012-01-29' 
FROM gp_doctor 
where unique_no = 'G202' 
5

你不能在INSERT语句的中间做一个子查询....你需要做的这一点,你运行你的INSERT前:

DECLARE @GPName VARCHAR(100) 

SELECT @GPName = name_of_doctor 
FROM dbo.gp_doctor 
WHERE unique_no = 'G202' -- I assume this is really a *string* here for the "unique_no" 

INSERT INTO 
    dbo.patient_record(patient_no, patient_name, datetime_of_birth, 
         GP_unique_no, GP_name, GP_address, complaint, 
         treatment, doctor, datetime_treatment_started, 
         datetime_treatment_ended) 
VALUES 
    (13, 'Sophie', '1955-05-13', 
     'G202', @GPName, 'Yorkshire', 'Broken right arm', 
     'Plaster Arm', 'Peter Parker', '2012-01-25','2012-01-29') 

或类似的东西。

+0

谢谢。这正是我在寻找的。 – user760946 2012-02-28 20:09:18