SELECT
PE.[PatientID]
,[Year]
,[Season]
,[Serial]
,[Age]
,[Length]
,IIF(EXISTS (SELECT *
FROM [dbo].[Patient_DiseaseFindings_EntryList] PDF
JOIN [dbo].ExternalDiseasesList EDL ON PDF.DiseaseFindingID = EDL.DiseaseFindingID
WHERE PE.PatientID = PDF.PatientID
AND PDF = 'Eye, Damaged'), 'Yes', 'No') AS "Eye, Damaged"
,IIF(EXISTS (SELECT *
FROM [dbo].[Patient_DiseaseFindings_EntryList] PDF
JOIN [dbo].ExternalDiseasesList EDL ON PDF.DiseaseFindingID = EDL.DiseaseFindingID
WHERE PE.PatientID = PDF.PatientID
AND PDF = 'Skin Rashes'), 'Yes', 'No') AS "Skin Rashes"
--- Et cetera
,[DoctorName]
,[Comments_Lab]
,[SampleID]
,[LabAssistant]
FROM [dbo].[Pantient] PE
If you tell me that you want the list of diseases to be dynamic, you should give this a second thought of whether you actually want to do this in the data layer. This is often better handled in the presentation layer. To do it dynamically in the data layer, you need dynamic SQL and that raises the stakes considerably.