簡體   English   中英

SQL子查詢表達式

[英]SQL subquery expression

SELECT  
    list_diagnosis_seq, list_diagnosis_icd10, 
    list_diagnosis_disease, list_diagnosis_diagtype
FROM    
    cmu_list_diagnosis, cmu_treatment
WHERE   
    (cmu_list_diagnosis.list_diagnosis_date = (SELECT MAX(list_diagnosis_date)  
                                               FROM cmu_list_diagnosis))
    AND cmu_list_diagnosis.treatment_id = (SELECT cmu_list_diagnosis.treatment_id
                                           FROM cmu_list_diagnosis, cmu_treatment 
                                           WHERE cmu_treatment.treatment_date = current_date
                                             AND cmu_treatment.patient_id = (SELECT cmu_patient.patient_id
                                                                             FROM cmu_patient, cmu_treatment
                                                                             WHERE cmu_patient.patient_id = cmu_treatment.patient_id));

我認為是錯的

如何使此代碼正確?

謝謝大家:)

AND cmu_list_diagnosis.treatment_id =(從cmu_list_diagnosis,cmu_treatment中選擇cmu_list_diagnosis.treatment_id WHERE cmu_treatment.treatment_date =當前日期AND cmu_treatment.patient_id =(選擇cmu_ Patient。Patient_id

在上面的兩個“選擇”引用中,都使用“前1個”或“使用IN”(選擇...而不是“ =選擇”

在不知道您的特定錯誤或DBMS的情況下,此翻譯可能會幫助您:

SELECT ListDiagnosis.list_diagnosis_seq
    ,ListDiagnosis.list_diagnosis_icd10
    ,ListDiagnosis.list_diagnosis_disease
    ,ListDiagnosis.list_diagnosis_diagtype
FROM cmu_list_diagnosis AS ListDiagnosis
INNER JOIN cmu_treatment AS Treatment ON Treatment.treatment_id = ListDiagnosis.treatment_id
    AND Treatment.treatment_date = CURRENT_DATE
INNER JOIN cmu_patient AS Patient ON Patient.patient_id = Treatment.patient_id
WHERE ListDiagnosis.list_diagnosis_date = (
    SELECT MAX(list_diagnosis_date) AS MaxDate
    FROM cmu_list_diagnosis
);

這會將您的語法轉換為ANSI語法,從而消除了子查詢的雙重嵌套。 INNER JOINs應該提供您要查找的篩選,並且WHERE子句子查詢中日期的別名應消除某些數據庫(例如Teradata)將引發的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM