sql server 2000 - Dynamic sql statement to generate multiple large case statements -
i staging data legacy sql server 2000 system i'm limited on how can write following query. came query viable solution doesn't use temp tables after posted question yesterday. i need sql server 2000 compatible alternative cte query
i need write type of query many tables , there instances have upwards of 20 nested case statements. there way can use dynamic sql generate these queries? otherwise i'm not sure it's going can maintain. here's example. thank you!
select cst.* ,modifieddatetime = case when dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(dim.modifiedtime, ''), coalesce(dim.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(dlm.modifiedtime, ''), coalesce(dlm.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(dlt.modifiedtime, ''), coalesce(dlt.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(dnc.modifiedtime, ''), coalesce(dnc.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(itl.modifiedtime, ''), coalesce(itl.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(pdg.modifiedtime, ''), coalesce(pdg.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(pyt.modifiedtime, ''), coalesce(pyt.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(ssp.modifiedtime, ''), coalesce(ssp.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(tgh.modifiedtime, ''), coalesce(tgh.modifieddate, '')) , dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) > dateadd(second, coalesce(vig.modifiedtime, ''), coalesce(vig.modifieddate, '')) dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) else case when dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(dim.modifiedtime, ''), coalesce(dim.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(dlm.modifiedtime, ''), coalesce(dlm.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(dlt.modifiedtime, ''), coalesce(dlt.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(dnc.modifiedtime, ''), coalesce(dnc.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(itl.modifiedtime, ''), coalesce(itl.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(pdg.modifiedtime, ''), coalesce(pdg.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(pyt.modifiedtime, ''), coalesce(pyt.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(ssp.modifiedtime, ''), coalesce(ssp.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(tgh.modifiedtime, ''), coalesce(tgh.modifieddate, '')) , dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) > dateadd(second, coalesce(vig.modifiedtime, ''), coalesce(vig.modifieddate, '')) dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) else case when dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(dim.modifiedtime, ''), coalesce(dim.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(dlm.modifiedtime, ''), coalesce(dlm.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(dlt.modifiedtime, ''), coalesce(dlt.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(dnc.modifiedtime, ''), coalesce(dnc.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(itl.modifiedtime, ''), coalesce(itl.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(pdg.modifiedtime, ''), coalesce(pdg.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(pyt.modifiedtime, ''), coalesce(pyt.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(ssp.modifiedtime, ''), coalesce(ssp.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(tgh.modifiedtime, ''), coalesce(tgh.modifieddate, '')) , dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) > dateadd(second, coalesce(vig.modifiedtime, ''), coalesce(vig.modifieddate, '')) dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) else case when dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(dim.modifiedtime, ''), coalesce(dim.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(dlm.modifiedtime, ''), coalesce(dlm.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(dlt.modifiedtime, ''), coalesce(dlt.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(dnc.modifiedtime, ''), coalesce(dnc.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(itl.modifiedtime, ''), coalesce(itl.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(pdg.modifiedtime, ''), coalesce(pdg.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(pyt.modifiedtime, ''), coalesce(pyt.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(ssp.modifiedtime, ''), coalesce(ssp.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(tgh.modifiedtime, ''), coalesce(tgh.modifieddate, '')) , dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) > dateadd(second, coalesce(vig.modifiedtime, ''), coalesce(vig.modifieddate, '')) dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) else case when dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(dim.modifiedtime, ''), coalesce(dim.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(dlm.modifiedtime, ''), coalesce(dlm.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(dlt.modifiedtime, ''), coalesce(dlt.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(dnc.modifiedtime, ''), coalesce(dnc.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(itl.modifiedtime, ''), coalesce(itl.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(pdg.modifiedtime, ''), coalesce(pdg.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(pyt.modifiedtime, ''), coalesce(pyt.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(ssp.modifiedtime, ''), coalesce(ssp.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(tgh.modifiedtime, ''), coalesce(tgh.modifieddate, '')) , dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) > dateadd(second, coalesce(vig.modifiedtime, ''), coalesce(vig.modifieddate, '')) dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) else case when dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(chd.modifiedtime, ''), coalesce(chd.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(cms.modifiedtime, ''), coalesce(cms.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(cpm.modifiedtime, ''), coalesce(cpm.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(csg.modifiedtime, ''), coalesce(csg.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(cst.modifiedtime, ''), coalesce(cst.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(dim.modifiedtime, ''), coalesce(dim.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(dlm.modifiedtime, ''), coalesce(dlm.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(dlt.modifiedtime, ''), coalesce(dlt.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(dnc.modifiedtime, ''), coalesce(dnc.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(itl.modifiedtime, ''), coalesce(itl.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(pdg.modifiedtime, ''), coalesce(pdg.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(pyt.modifiedtime, ''), coalesce(pyt.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(ssp.modifiedtime, ''), coalesce(ssp.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(tgh.modifiedtime, ''), coalesce(tgh.modifieddate, '')) , dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) > dateadd(second, coalesce(vig.modifiedtime, ''), coalesce(vig.modifieddate, '')) dateadd(second, coalesce(ctg.modifiedtime, ''), coalesce(ctg.modifieddate, '')) end end end end end end dbo.custtable cst left join dbo.cashdiscount chd on chd.cashdiscountcode = cst.cashdiscount , chd.companyid = cst.companyid left join dbo.commissionsalesgrouptable cms on cms.groupid = cst.salesgroup , cms.companyid = cst.companyid left join dbo.custpaymmodetabletable cpm on cpm.paymmode = cst.paymmode , cpm.companyid = cst.companyid left join dbo.customergroup csg on csg.customergroup = cst.customergroup , csg.companyid = cst.companyid left join dbo.custstatisticsgrouptable ctg on ctg.custstatisticsgroup = cst.statisticsgroup , ctg.companyid = cst.companyid
wiki
Comments
Post a Comment