Foxtable(狐表)用户栏目专家坐堂 → 多表查询


  共有2347人关注过本帖平板打印复制链接

主题:多表查询

帅哥哟,离线,有人找我吗?
wgqcool
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
多表查询  发帖心情 Post By:2020/9/16 20:02:00 [只看该作者]

情况说明:表为SQL外部数据表,订单表的合同编号为唯一值,备货单中合同编号为非唯一值,同一张订单会有多张备货单,每张备货单会有个逻辑列“是否发齐”;
需求说明:想通过多表查询,按订单表的合同编号生成查询报表,关联备货单上的“是否发齐”,因为备货单有对应多行,但是又不知道逻辑列怎么用聚合函数来运算,想着SQL里面逻辑列用0,1表示,准备用MIN(是否发齐)来运算,只要多行的备货单里面有一个未发齐(0)的行,那么整个订单就是未发齐(0)的状态。可是还是太年轻了,发现行不通,故请教老师来了;
主要代码:
cmd.CommandText = "Selec t a.[_Identify],a.合同编号,a.客户名称,a.签订日期,a.合同类型,a.合同金额,a.销售员,b.成本价,c.是否发齐 From ({订单表} a LEFT JOIN (Selec t 合同编号,SUM(成本金额) As 成本价 From {订单明细表} Group By 合同编号) b on a.合同编号 = b.合同编号) LEFT JOIN (Selec t 合同编号,MIX(是否发齐)  as 是否发齐 From {备货单} Group By 合同编号) c ON a.合同编号 = c.合同编号 where a.签订日期 >= '2/1/2020' ORDER BY 签订日期"





[此贴子已经被作者于2020/9/16 20:14:56编辑过]

 回到顶部