Re: Wierd Query of the week....I WIN! -
05-07-2010
, 09:49 AM
Can yuou use a CTE for EP stuff and then filter Dataset_Nfep before
you do that chain of LEFT OUTER JOINs? I have no idea if this will
help, but I had some time to play around ..
WITH EP (study_id, event_date, diag_ct_mri)
AS
(SELECT E.study_id, E.event_date, LDE.diag_ct_mri
FROM Lt_Events AS E, Lt_Disease_Events AS LDE
WHERE E.lt_event_kuid = LDE.lt_event_kuid)
SELECT N.study_id, MAX(EP01.diag_ct_mri),
MAX(EP03.diag_ct_mri), MAX(EP06.diag_ct_mri),
MAX(EP07.diag_ct_mri), MAX(EP08.diag_ct_mri),
MAX(EP09.diag_ct_mri), MAX(EP10.diag_ct_mri),
MAX(EP11.diag_ct_mri), MAX(EP12.diag_ct_mri),
MAX(EP14.diag_ct_mri), MAX(EP16.diag_ct_mri),
MAX(EP17.diag_ct_mri), MAX(EP18.diag_ct_mri),
MAX(EP19.diag_ct_mri), MAX(EP21.diag_ct_mri),
MAX(EP33.diag_ct_mri), MAX(EP42.diag_ct_mri)
FROM (SELECT study_id,
nfep0001_date, nfep0003_date, nfep0006_date,
nfep0007_date, nfep0008_date, nfep0009_date,
nfep0010_date, nfep0011_date, nfep0012_date,
nfep0014_date, nfep0016_date, nfep0017_date,
nfep0018_date, nfep0019_date, nfep0021_date,
nfep0033_date, nfep0042_date,
nfep0001, nfep0003, nfep0006, nfep0007,
nfep0008, nfep0009, nfep0010, nfep0011,
nfep0012, nfep0014, nfep0016, nfep0017,
nfep0018, nfep0019, nfep0021, nfep0033, nfep0042
FROM Dataset_Nfep)
AS N
LEFT OUTER JOIN
EP AS EP01
ON N.study_id = EP01.study_id
AND N.nfep0001_date = EP01.event_date
LEFT OUTER JOIN
EP AS EP03
ON N.study_id = EP03.study_id
AND N.nfep0003_date = EP03.event_date
LEFT OUTER JOIN
EP AS EP06
ON N.study_id = EP06.study_id
AND N.nfep0006_date = EP06.event_date
LEFT OUTER JOIN
EP AS EP07
ON N.study_id = EP07.study_id
AND N.nfep0007_date = EP07.event_date
LEFT OUTER JOIN
EP AS EP08
ON N.study_id = EP08.study_id
AND N.nfep0008_date = EP08.event_date
LEFT OUTER JOIN
EP AS EP09
ON N.study_id = EP09.study_id
AND N.nfep0009_date = EP09.event_date
LEFT OUTER JOIN
EP AS EP10
ON N.study_id = EP10.study_id
AND N.nfep0010_date = EP10.event_date
LEFT OUTER JOIN
EP AS EP11
ON N.study_id = EP11.study_id
AND N.nfep0011_date = EP11.event_date
LEFT OUTER JOIN
EP AS EP12
ON N.study_id = EP12.study_id
AND N.nfep0012_date = EP12.event_date
LEFT OUTER JOIN
EP AS EP14
ON N.study_id = EP14.study_id
AND N.nfep0014_date = EP14.event_date
LEFT OUTER JOIN
EP AS EP16
ON N.study_id = EP16.study_id
AND N.nfep0016_date = EP16.event_date
LEFT OUTER JOIN
EP AS EP17
ON N.study_id = EP17.study_id
AND N.nfep0017_date = EP17.event_date
LEFT OUTER JOIN
EP AS EP18
ON N.study_id = EP18.study_id
AND N.nfep0018_date = EP18.event_date
LEFT OUTER JOIN
EP AS EP19
ON N.study_id = EP19.study_id
AND N.nfep0019_date = EP19.event_date
LEFT OUTER JOIN
EP AS EP21
ON N.study_id = EP21.study_id
AND N.nfep0021_date = EP21.event_date
LEFT OUTER JOIN
EP AS EP33
ON N.study_id = EP33.study_id
AND N.nfep0033_date = EP33.event_date
LEFT OUTER JOIN
EP AS EP42
ON N.study_id = EP42.study_id
AND N.nfep0042_date = EP42.event_date
GROUP BY N.study_id; |