detaiLoop 表中包含日期,趟次2个字段。
OREDERTIME 表中包含日期,趟次2个字段。
我要的得到的结果是:
select *from detailLoop 的结果 跟上ORDERTIME表中的2个字段。跟上的2个字段要求满足detaiLoop 日期,趟次 和OREDERTIME 日期,趟次的相等, 
如果OREDERTIME 日期,趟次 不存在则默认为NULL.

解决方案 »

  1.   

    select *
    from detailLoop d
    where exists(select * from OREDERTIME where DATEDIFF(DAY,d.日期,日期)=0 and d.趟次=趟次)
      

  2.   

    select 
      a.*,
      b.col1,
      b.col2
    from
      detailoop a
    left join 
      OREDERTIME b
    on
      datediff(day,a.日期,b.日期)=0
    and
      a.趟次=b.趟次
      

  3.   

    我说详细点。
    假设 detaiLoop  有4个字段:a,b,c,d.
    假设 OREDERTIME 有4个字段:c,d,e,f
    我要做的E,F字段加入到SELECT * FROM detaiLoop  结果里面。
    判断条件是detaiLoop .c = OREDERTIME .c and detaiLoop .d = OREDERTIME .d
    假如detaiLoop .c ,detaiLoop .d在OREDERTIME 不存在, 则E,F默认为0,
      

  4.   


    select 
      detailoop.*,
      ISNULL(OREDERTIME.E,0) AS E,
      ISNULL(OREDERTIME.F,0) AS F
    from
      detailoop 
    left join 
      OREDERTIME 
    on
      detaiLoop.c = OREDERTIME.c and detaiLoop.d = OREDERTIME.d 
      

  5.   


    select 
    c.*,
    e=isnull(d.e,0),
    f=isnull(d.f,0)
    from detailLoop c left join OREDERTIME d
    c.c = d.c and c.d =d.d 
      

  6.   

    select 
    c.*,
    e=isnull(d.e,0),
    f=isnull(d.f,0)
    from detailLoop c left join OREDERTIME d on
    c.c = d.c and c.d =d.d 
      

  7.   

    有点小问题。select * from detaiLoop  记录条数是189.
    用上面查询到的记录条数是190.
      

  8.   

    select 
      detailoop.*,
      ISNULL(OREDERTIME.E,0) AS E,
      ISNULL(OREDERTIME.F,0) AS F
    from
      detailoop 
    left join 
      (select c,d,sum(e) e,sum(f) f from OREDERTIME group by c,d) OREDERTIME 
    on
      detaiLoop.c = OREDERTIME.c and detaiLoop.d = OREDERTIME.d