• left join 左边有数据,右边无数据


     
    主要是andwhere的区别:
     
    原Sql:
    select a.ID as reqid,(select top 1 Convert(nvarchar(50),jhdatez,111) from CS_OrderPro
    where Codeno=a.InvNo and iProductId =a.iProductId)as 'jhdate',
    (select top 1 Deptname from UserInfo left join Department on  UserInfo.deptid=Department.Deptid where UserInfo.userid=AuditUserId) as deptname,
    (select isnull(SUM(iNum),0) from CS_OrderPro where CS_OrderPro.zid=a.ID and  CS_OrderPro.codeno=a.Invno) as cgnum,
    (select top 1 InvNO from CS_OrderPro where CS_OrderPro.zid=a.ID and  CS_OrderPro.codeno=a.Invno) as cginvno,
    (select isnull(SUM(CS_InvRecBill.iNum),0) from CS_InvRecBill
    left join  CS_OrderPro on CS_InvRecBill.zid=CS_OrderPro.ID
    where CS_OrderPro.zid=a.ID and CS_OrderPro.codeno=a.Invno) as rknum,*,
    isnull((select sum(pronum) from cs_stock where proid=a.iproductid),0) as kcnum,
    comoditiestype from CS_OrderRequise a left join CS_OrderRequiseList c on c.OutCode=a.InvNO
    left join B_Products b on b.id=a.iProductID 
    left join ComoditiesType on ComoditiesType.typeid=b.typeid    where 1=1 and c.isend=1 and  ComoditiesType.typeid<>336

    左连接查询后,最后的where语句过滤了本该显示的数据。

    修改过的Sql:

    select a.ID as reqid,(select top 1 Convert(nvarchar(50),jhdatez,111) from CS_OrderPro
    where Codeno=a.InvNo and iProductId =a.iProductId)as 'jhdate',
    (select top 1 Deptname from UserInfo left join Department on  UserInfo.deptid=Department.Deptid where UserInfo.userid=AuditUserId) as deptname,
    (select isnull(SUM(iNum),0) from CS_OrderPro where CS_OrderPro.zid=a.ID and  CS_OrderPro.codeno=a.Invno) as cgnum,
    (select top 1 InvNO from CS_OrderPro where CS_OrderPro.zid=a.ID and  CS_OrderPro.codeno=a.Invno) as cginvno,
    (select isnull(SUM(CS_InvRecBill.iNum),0) from CS_InvRecBill
    left join  CS_OrderPro on CS_InvRecBill.zid=CS_OrderPro.ID
    where CS_OrderPro.zid=a.ID and CS_OrderPro.codeno=a.Invno) as rknum,*,
    isnull((select sum(pronum) from cs_stock where proid=a.iproductid),0) as kcnum,
    comoditiestype from CS_OrderRequise a left join CS_OrderRequiseList c on c.OutCode=a.InvNO
    left join B_Products b on b.id=a.iProductID
    left join ComoditiesType on ComoditiesType.typeid=b.typeid AND   ComoditiesType.typeid<>336   where 1=1 and c.isend=1 
  • 相关阅读:
    CSRF跨站请求伪造
    FineReport 导出汉字乱码
    Java 程序中中文没有乱码,存入数据库后中文乱码问题
    分析函数
    Redis的持久化与主从复制
    分布式Redis的使用
    redis的介绍和安装
    Solr后台管理及SolrJ的使用
    Solr总结
    bootstrap 点击回到顶部 超简单
  • 原文地址:https://www.cnblogs.com/ywkcode/p/11491757.html
Copyright © 2020-2023  润新知