【问题标题】:I need a SQL Server 2000 compatible alternative to this CTE query我需要一个兼容 SQL Server 2000 的 CTE 查询替代方案
【发布时间】:2017-08-23 03:26:27
【问题描述】:

以下查询连接多个表,然后创建一个名为 MODIFIEDDATETIME 的列,该列设置为最新的 MODIFIEDTIME / MODIFIEDDATE

MODIFIEDTIME 从午夜开始以秒为单位存储。我需要让这个查询在 SQL Server 2000 上工作,并希望它尽可能简单。有什么想法吗?

***EDIT - 我正在尝试在不使用临时表的情况下执行此操作。

;with CTE as 
(
    select 
        MODIFIEDDATETIME = (select max(modified)
                            from (values (dateadd(second, cij.MODIFIEDTIME, cij.MODIFIEDDATE)),
                                         (dateadd(second, cn1.MODIFIEDTIME, cn1.MODIFIEDDATE)),
                                         (dateadd(second, st1.MODIFIEDTIME, st1.MODIFIEDDATE)),
                                         (dateadd(second, csg.MODIFIEDTIME, csg.MODIFIEDDATE)),
                                         (dateadd(second, slo.MODIFIEDTIME, slo.MODIFIEDDATE)),
                                         (dateadd(second, dsc.MODIFIEDTIME, dsc.MODIFIEDDATE)),
                                         (dateadd(second, cms.MODIFIEDTIME, cms.MODIFIEDDATE))) as dateList (modified))
    from 
        dbo.HeaderTable cij
    left join 
        dbo.COUNTY cn1 on cn1.COUNTYID = cij.COUNTYID
                       and cn1.COMPANYID = cij.COMPANYID
                       and cn1.STATEID = cij.STATEID
    left join 
        dbo.STATETABLE st1 on st1.STATEID = cij.STATEID
                           and st1.COMPANYID = cij.COMPANYID
                           and st1.COUNTRYID = cij.DLVCOUNTRY
    left join 
        dbo.CUSTGROUPTABLE csg on csg.CUSTGROUP = cij.CUSTGROUP
                               and csg.COMPANYID = cij.COMPANYID
    left join 
        dbo.SALESORIGINTABLE slo on slo.ORIGINID = cij.SALESORIGINID
                                 and slo.COMPANYID = cij.COMPANYID
    left join 
        dbo.DESTINATIONCODETABLE dsc on dsc.DESTINATIONCODEID = cij.DESTINATIONCODEID
                                     and dsc.COMPANYID = cij.COMPANYID
    left join 
        dbo.COMMISSIONSALESGROUPTABLE cms on cms.GROUPID = cij.SALESGROUP
                                          and cms.COMPANYID = cij.COMPANYID)
select *
from CTE;

【问题讨论】:

  • 为什么还在用sql 2000?它已经死了很长时间了。
  • 为什么您的评论完全无关紧要,甚至完全浪费时间发布?您是否暗示目前没有 SQL Server 2000 实例可供企业使用?您是否建议我正在构建以替换此类实现的 EDW 不存在?无聊吗?
  • 我在问为什么您还没有摆脱至少 6-7 年没有得到官方支持的数据库。在 2000 年构建新功能就像在 VB6 中创建新应用程序一样。肯定有人会这样做,这些人应该预料到有人会问他们为什么这样做。
  • 您不明白的是,有时可能会获得需要从中暂存数据的旧系统上的客户端。没有人正在构建 SQL Server 2000 实例。这个已经存在超过 15 年了。
  • @Arthur 也许您可以创建一个模仿您的 CTE 的表函数?有关详细信息,请参阅How to convert recursive CTE to be usable in SQL Server 2000

标签: sql-server sql-server-2000 common-table-expression


【解决方案1】:

只需将 cte 移至 from 如下:

select * from 

(select MODIFIEDDATETIME = (   select max(modified)
                                  from (   values (dateadd(second, cij.MODIFIEDTIME, cij.MODIFIEDDATE))
                                                 ,(dateadd(second, cn1.MODIFIEDTIME, cn1.MODIFIEDDATE))
                                                 ,(dateadd(second, st1.MODIFIEDTIME, st1.MODIFIEDDATE))
                                                 ,(dateadd(second, csg.MODIFIEDTIME, csg.MODIFIEDDATE))
                                                 ,(dateadd(second, slo.MODIFIEDTIME, slo.MODIFIEDDATE))
                                                 ,(dateadd(second, dsc.MODIFIEDTIME, dsc.MODIFIEDDATE))
                                                 ,(dateadd(second, cms.MODIFIEDTIME, cms.MODIFIEDDATE))) as dateList (modified) )
    from dbo.HeaderTable                         cij
         left join dbo.COUNTY                    cn1 on cn1.COUNTYID          = cij.COUNTYID
                                                    and cn1.COMPANYID         = cij.COMPANYID
                                                    and cn1.STATEID           = cij.STATEID
         left join dbo.STATETABLE                st1 on st1.STATEID           = cij.STATEID
                                                    and st1.COMPANYID         = cij.COMPANYID
                                                    and st1.COUNTRYID         = cij.DLVCOUNTRY
         left join dbo.CUSTGROUPTABLE            csg on csg.CUSTGROUP         = cij.CUSTGROUP
                                                    and csg.COMPANYID         = cij.COMPANYID
         left join dbo.SALESORIGINTABLE          slo on slo.ORIGINID          = cij.SALESORIGINID
                                                    and slo.COMPANYID         = cij.COMPANYID
         left join dbo.DESTINATIONCODETABLE      dsc on dsc.DESTINATIONCODEID = cij.DESTINATIONCODEID
                                                    and dsc.COMPANYID         = cij.COMPANYID
         left join dbo.COMMISSIONSALESGROUPTABLE cms on cms.GROUPID           = cij.SALESGROUP
                                                    and cms.COMPANYID         = cij.COMPANYID) as a

【讨论】:

  • 这不适用于 2000 实例。表值构造函数是在 sql server 2005 中引入的。
  • AFAICT 派生表的值构造函数在 SQL Server 2000 中不可用。
  • 仅供参考:Dateadd 是从 2008 年开始:docs.microsoft.com/en-us/sql/t-sql/functions/…
  • @TheGameiswar 文档不再显示任何早于 2008 年的内容,因为它们不再受支持。但相信我,dateadd 的存在时间比 sql 2005 长得多。
  • 感谢我在 2005 年使用 dateadd 记住的信息,这是一个惊喜
【解决方案2】:
select (dateadd(second, cij.MODIFIEDTIME, cij.MODIFIEDDATE)) cijDate   -- add column name
,(dateadd(second, cn1.MODIFIEDTIME, cn1.MODIFIEDDATE)) cn1Date
 ,(dateadd(second, st1.MODIFIEDTIME, st1.MODIFIEDDATE))st1Date
 ,(dateadd(second, csg.MODIFIEDTIME, csg.MODIFIEDDATE))csgDate
 ,(dateadd(second, slo.MODIFIEDTIME, slo.MODIFIEDDATE))sloDate
 ,(dateadd(second, dsc.MODIFIEDTIME, dsc.MODIFIEDDATE))dscDate
,(dateadd(second, cms.MODIFIEDTIME, cms.MODIFIEDDATE))cmsDate
into #temp1
from dbo.HeaderTable                         cij
     left join dbo.COUNTY                    cn1 on cn1.COUNTYID          = cij.COUNTYID
                                                and cn1.COMPANYID         = cij.COMPANYID
                                                and cn1.STATEID           = cij.STATEID
     left join dbo.STATETABLE                st1 on st1.STATEID           = cij.STATEID
                                                and st1.COMPANYID         = cij.COMPANYID
                                                and st1.COUNTRYID         = cij.DLVCOUNTRY
     left join dbo.CUSTGROUPTABLE            csg on csg.CUSTGROUP         = cij.CUSTGROUP
                                                and csg.COMPANYID         = cij.COMPANYID
     left join dbo.SALESORIGINTABLE          slo on slo.ORIGINID          = cij.SALESORIGINID
                                                and slo.COMPANYID         = cij.COMPANYID
     left join dbo.DESTINATIONCODETABLE      dsc on dsc.DESTINATIONCODEID = cij.DESTINATIONCODEID
                                                and dsc.COMPANYID         = cij.COMPANYID
     left join dbo.COMMISSIONSALESGROUPTABLE cms on cms.GROUPID           = cij.SALESGROUP
                                                and cms.COMPANYID         = cij.COMPANYID

 create table #temp2 (modified datetime)

 insert into #temp2
 select cijDate from  #temp1
 union all 
 select cn1Date  from  #temp1
 union all 
 select st1Date from  #temp1
 union all 
 select csgDate from  #temp1
 union all 
 select sloDate from  #temp1
 union all 
 select dscDate from  #temp1
 union all 
 select cmsDate from  #temp1

 select MAX( modified ) from #temp2

【讨论】:

  • 对不起,我应该指定,我正在尝试不使用临时表来执行此操作。这可能吗?
  • yes :) ,你必须写一个case语句并找出select语句中的最大数字。因为您有 7 个字段,所以这将是一个包含多种可能组合的长案例语句。
  • 应该很有趣。我需要编写 13 个这样的查询实例。其中一些有超过 20 组我需要考虑的日期。恶心!
【解决方案3】:

@rahul-richhariya 是正确的。我需要创建一堆嵌套案例......而且它非常难看。谢谢大家帮忙。在这里。

select MODIFIEDDATETIME = case
                              when dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(dim.MODIFIEDTIME, ''), coalesce(dim.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlm.MODIFIEDTIME, ''), coalesce(dlm.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlt.MODIFIEDTIME, ''), coalesce(dlt.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(dnc.MODIFIEDTIME, ''), coalesce(dnc.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(itl.MODIFIEDTIME, ''), coalesce(itl.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(pdg.MODIFIEDTIME, ''), coalesce(pdg.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(pyt.MODIFIEDTIME, ''), coalesce(pyt.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(ssp.MODIFIEDTIME, ''), coalesce(ssp.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(tgh.MODIFIEDTIME, ''), coalesce(tgh.MODIFIEDDATE, ''))
                               and dateadd(second, coalesce(chd.MODIFIEDTIME, ''), coalesce(chd.MODIFIEDDATE, '')) > dateadd(second, coalesce(vig.MODIFIEDTIME, ''), coalesce(vig.MODIFIEDDATE, '')) then 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, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(dim.MODIFIEDTIME, ''), coalesce(dim.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlm.MODIFIEDTIME, ''), coalesce(dlm.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlt.MODIFIEDTIME, ''), coalesce(dlt.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(dnc.MODIFIEDTIME, ''), coalesce(dnc.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(itl.MODIFIEDTIME, ''), coalesce(itl.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(pdg.MODIFIEDTIME, ''), coalesce(pdg.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(pyt.MODIFIEDTIME, ''), coalesce(pyt.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(ssp.MODIFIEDTIME, ''), coalesce(ssp.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(tgh.MODIFIEDTIME, ''), coalesce(tgh.MODIFIEDDATE, ''))
                                        and dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, '')) > dateadd(second, coalesce(vig.MODIFIEDTIME, ''), coalesce(vig.MODIFIEDDATE, '')) then 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, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(dim.MODIFIEDTIME, ''), coalesce(dim.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlm.MODIFIEDTIME, ''), coalesce(dlm.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlt.MODIFIEDTIME, ''), coalesce(dlt.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(dnc.MODIFIEDTIME, ''), coalesce(dnc.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(itl.MODIFIEDTIME, ''), coalesce(itl.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(pdg.MODIFIEDTIME, ''), coalesce(pdg.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(pyt.MODIFIEDTIME, ''), coalesce(pyt.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(ssp.MODIFIEDTIME, ''), coalesce(ssp.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(tgh.MODIFIEDTIME, ''), coalesce(tgh.MODIFIEDDATE, ''))
                                                 and dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, '')) > dateadd(second, coalesce(vig.MODIFIEDTIME, ''), coalesce(vig.MODIFIEDDATE, '')) then 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, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(dim.MODIFIEDTIME, ''), coalesce(dim.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlm.MODIFIEDTIME, ''), coalesce(dlm.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlt.MODIFIEDTIME, ''), coalesce(dlt.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(dnc.MODIFIEDTIME, ''), coalesce(dnc.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(itl.MODIFIEDTIME, ''), coalesce(itl.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(pdg.MODIFIEDTIME, ''), coalesce(pdg.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(pyt.MODIFIEDTIME, ''), coalesce(pyt.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(ssp.MODIFIEDTIME, ''), coalesce(ssp.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(tgh.MODIFIEDTIME, ''), coalesce(tgh.MODIFIEDDATE, ''))
                                                          and dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, '')) > dateadd(second, coalesce(vig.MODIFIEDTIME, ''), coalesce(vig.MODIFIEDDATE, '')) then 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, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(dim.MODIFIEDTIME, ''), coalesce(dim.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlm.MODIFIEDTIME, ''), coalesce(dlm.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlt.MODIFIEDTIME, ''), coalesce(dlt.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(dnc.MODIFIEDTIME, ''), coalesce(dnc.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(itl.MODIFIEDTIME, ''), coalesce(itl.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(pdg.MODIFIEDTIME, ''), coalesce(pdg.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(pyt.MODIFIEDTIME, ''), coalesce(pyt.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(ssp.MODIFIEDTIME, ''), coalesce(ssp.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(tgh.MODIFIEDTIME, ''), coalesce(tgh.MODIFIEDDATE, ''))
                                                                   and dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, '')) > dateadd(second, coalesce(vig.MODIFIEDTIME, ''), coalesce(vig.MODIFIEDDATE, '')) then 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, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(cms.MODIFIEDTIME, ''), coalesce(cms.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(cpm.MODIFIEDTIME, ''), coalesce(cpm.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(csg.MODIFIEDTIME, ''), coalesce(csg.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(cst.MODIFIEDTIME, ''), coalesce(cst.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(dim.MODIFIEDTIME, ''), coalesce(dim.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlm.MODIFIEDTIME, ''), coalesce(dlm.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(dlt.MODIFIEDTIME, ''), coalesce(dlt.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(dnc.MODIFIEDTIME, ''), coalesce(dnc.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(itl.MODIFIEDTIME, ''), coalesce(itl.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(pdg.MODIFIEDTIME, ''), coalesce(pdg.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(pyt.MODIFIEDTIME, ''), coalesce(pyt.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(ssp.MODIFIEDTIME, ''), coalesce(ssp.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(tgh.MODIFIEDTIME, ''), coalesce(tgh.MODIFIEDDATE, ''))
                                                                            and dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, '')) > dateadd(second, coalesce(vig.MODIFIEDTIME, ''), coalesce(vig.MODIFIEDDATE, '')) then dateadd(second, coalesce(ctg.MODIFIEDTIME, ''), coalesce(ctg.MODIFIEDDATE, ''))
                                                                       end
                                                              end
                                                     end
                                            end
                                   end
                          end
from dbo.CUSTTABLE                           cst
     left join dbo.CUSTOMERGROUP             csg on csg.CUSTOMERGROUP       = cst.CUSTOMERGROUP
                                                and csg.COMPANYID           = cst.COMPANYID
     left join dbo.CASHDISCOUNT              chd on chd.CASHDISCOUNTCODE    = cst.CASHDISCOUNT
                                                and chd.COMPANYID           = cst.COMPANYID
     left join dbo.COMMISSIONSALESGROUPTABLE cms on cms.GROUPID             = cst.SALESGROUP
                                                and cms.COMPANYID           = cst.COMPANYID
     left join dbo.CUSTSTATISTICSGROUPTABLE  ctg on ctg.CUSTSTATISTICSGROUP = cst.STATISTICSGROUP
                                                and ctg.COMPANYID           = cst.COMPANYID
     left join dbo.CUSTPAYMMODETABLETABLE    cpm on cpm.PAYMMODE            = cst.PAYMMODE
                                                and cpm.COMPANYID           = cst.COMPANYID;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    相关资源
    最近更新 更多