detaiLoop 表中包含日期,趟次2个字段。
OREDERTIME 表中包含日期,趟次2个字段。
我要的得到的结果是:
select *from detailLoop 的结果 跟上ORDERTIME表中的2个字段。跟上的2个字段要求满足detaiLoop 日期,趟次 和OREDERTIME 日期,趟次的相等,
如果OREDERTIME 日期,趟次 不存在则默认为NULL.
OREDERTIME 表中包含日期,趟次2个字段。
我要的得到的结果是:
select *from detailLoop 的结果 跟上ORDERTIME表中的2个字段。跟上的2个字段要求满足detaiLoop 日期,趟次 和OREDERTIME 日期,趟次的相等,
如果OREDERTIME 日期,趟次 不存在则默认为NULL.
from detailLoop d
where exists(select * from OREDERTIME where DATEDIFF(DAY,d.日期,日期)=0 and d.趟次=趟次)
a.*,
b.col1,
b.col2
from
detailoop a
left join
OREDERTIME b
on
datediff(day,a.日期,b.日期)=0
and
a.趟次=b.趟次
假设 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,
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
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
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
用上面查询到的记录条数是190.
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