Questione : la sottointerrogazione ha restituito il più di 1 valore: codice 512 del fornitore della base di dati

Abbiamo la vista di sql sotto il quel stiamo restituendo l'errore qui sopra.  Ho letto i riferimenti a ripetere i nomi di pseudonimo per le stesse tabelle ed altre citazioni per le soluzioni.  Può un esperto aiutarlo ad effettuare un analisi guasti di?  
SELECT p.dob, pctc.patient_id, pctc.patient_assignment_id, dwect.doc_session_no COME dw_session#, de.doc_code, pctc.clinical_transaction_no,
LTRIM (RTRIM (p.lname) del

) di ringraziamenti… + “,„ + LTRIM (RTRIM (p.fname)) + “-„ + di p.patient_id paziente COSÌ, dwect.total_treatments, pctc.axis_I_II_1 QUANTO CT_dx,
dwect.patient_dx COME DW_Dx,
(SUPERIORE PRESCELTO (1) axis_I_II_1
dal dbo. Patient_Clin_Tran_Cov COME pctc3 CON il
(del nolock) DOVE (axis_I_II_1 NON È NULLO) E (protocol_id = “7934„)) COME DX, de.created_date, dwect.modality, pctc.coverage_plan_id, pctc.proc_code,
pctc.proc_chron,
(SUPERIORE PRESCELTO (1) proc_chron
dal dbo. Patient_Clin_Tran_Cov COME pctc1 CON il
(del nolock) DOVE (patient_id = pctc.patient_id) E (episode_id = pctc.episode_id) E (proc_chron < pctc.proc_chron) E (proc_code GRADICE “ECT%") E L'ORDINE del
del
(payor_payment > 0.00) da proc_chron DESC) COME Prev_tx,
(SUPERIORE PRESCELTO (1) proc_chron
dal dbo. Patient_Clin_Tran_Cov COME pctc CON il
(del nolock) DOVE (p.patient_id = patient_id) E (p.episode_id = episode_id) E (protocol_id = “7934„) E (proc_code = “MDEVLPSYDX ") E
(payor_payment > 0.00)) COME Consult_Date,
(SUPERIORE PRESCELTO (1) proc_code
dal dbo. Patient_Clin_Tran_Cov COME pctc CON il
(del nolock) DOVE (p.patient_id = patient_id) E (p.episode_id = episode_id) E (protocol_id = “7934„) E (proc_code = “MDEVLPSYDX ") E
(payor_payment > 0.00)) COME Consult_Code,
(SUPERIORE PRESCELTO (1) billing_id
dal dbo. Patient_Clin_Tran_Cov COME pctc CON il
(del nolock) DOVE (p.patient_id = patient_id) E (p.episode_id = episode_id) E (protocol_id = “7934„) E (proc_code = “MDEVLPSYDX ") E
(payor_payment > 0.00)) COME Consult_Id,
(LTRIM PRESCELTO (RTRIM (s1.fname)) + ““+ LTRIM (RTRIM (s1.lname)) +„, M.D.„ COME Expr1
dal dbo. Patient_Clin_Tran_Cov COME pctc1 CON (nolock) il dbo INTERNO di JOIN
. Personale COME s1 SU pctc1.billing_id = s1.staff_id
DOVE (p.patient_id = pctc1.patient_id) E (p.episode_id = pctc1.episode_id) E (pctc1.protocol_id = “7934„) E
(pctc1.proc_code = “MDEVLPSYDX ") E (s1.status = “A ") E (pctc1.payor_payment > 0.00)) COME dbo. Patient_Clin_Tran_Cov di Consult_Name
FROM COME pctc CON (nolock) il dbo ESTERNO LASCIATO. Doc_Entity di JOIN
COME de WITH (nolock) su pctc.clinical_transaction_no = de.clinical_transaction_no LASCIATO JOIN
dbo.doc_dw_wpic_ect COME dwect CON (nolock) SU de.doc_session_no = dwect.doc_session_no E
dbo INTERNO di dwect.version_no = di de.current_version_no JOIN
. Paziente COME p CON (nolock) SU dbo INTERNO di pctc.patient_id = di p.patient_id E di pctc.episode_id = di p.episode_id JOIN
. Personale COME s CON (nolock) SU pctc.billing_id = s.staff_id
WHERE pctc.patient_id = “00331154„ e (de.doc_code È OR
de.doc_code = “ECT ") E (pctc.payor_payment > 0.00) E (<= GETDATE di pctc.proc_chron ()) E (prova ")
del <> di p.lname “ class= del

Risposta : la sottointerrogazione ha restituito il più di 1 valore: codice 512 del fornitore della base di dati

La sottoselezione nella clausola PRESCELTA deve restituire soltanto una fila e soltanto una colonna. Il problema è all'ultima sottoselezione che non comincia la PARTE SUPERIORE (1). Così dovreste controllare la seguente sottoselezione o completarli semplicemente con una PARTE SUPERIORE (1)

1:
2:
3:
4:
5:
(LTRIM     PRESCELTO (RTRIM (s1.fname)) + ““+ LTRIM (RTRIM (s1.lname)) +„, M.D.„ COME Expr1
                                      Dal dbo. Patient_Clin_Tran_Cov COME pctc1 CON (nolock) INTERNO UNIR
                                                   dbo. Personale COME s1 SU pctc1.billing_id = s1.staff_id
                            DOVE      (p.patient_id = pctc1.patient_id) E (p.episode_id = pctc1.episode_id) E (pctc1.protocol_id = “7934„) E 
                                                   (pctc1.proc_code = “MDEVLPSYDX ") E (s1.status = “A ") E (pctc1.payor_payment > 0.00)) COME Consult_Name
Altre soluzioni  
 
programming4us programming4us