2012-02-28 11 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を追加する方法がわかりません。何か案が?あなたがINSERT文の途中で副選択を行うことはできませんSQL Server 2005の値で挿入クエリ内の選択クエリを使用する方法

答えて

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を実行する前にこれを実行する必要があります。

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

関連する問題