以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  消失了的表达式列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43795)

--  作者:sloyy
--  发布时间:2013/12/15 21:52:00
--  消失了的表达式列

如图:


图片点击可在新窗口打开查看此主题相关图片如下:qq截图1.png
图片点击可在新窗口打开查看

其中 :成人人数 儿童人数 应收 是表达式列 tbale1绑定后,显示正常

 

用了一个多表查询后, 表达式列消失了

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图2.png
图片点击可在新窗口打开查看

 

多表查询sql语句如下:

Select * FROM {订单} WHERE 团号 In (Select  {订单}.团号 From ({订单} Inner JOIN {旅游线路表} ON {旅游线路表}.[线路名称] = {订单}.[线路名称]) Inner JOIN {收入项目表} ON {收入项目表}.[团号] = {订单}.[团号]"

问题出在哪里?


--  作者:有点甜
--  发布时间:2013/12/15 22:11:00
--  
 表达式列不存在于数据表中的,需要你自己再去统计这些数。也就是说,你要加入列名称,同时自己统计明细表的数据。

 比如,select 团号, 路线名称, 成人价, (select sum(成人人数) from {明细表} b where b.团号 = a.团好) as 成人人数 from {订单} a

--  作者:sloyy
--  发布时间:2013/12/15 22:58:00
--  

谢谢 ,按你的方法解决了,写了一大堆代码才达到效果:

Select 团号,(select sum(成人) from {收入项目表} b where b.团号 = a.团号) as 成人人数,成人价,(select sum(儿童) from {收入项目表} b where b.团号 = a.团号) as 儿童人数,儿童价,(成人人数*成人价+儿童人数*儿童价) as 应收,已收,订单状态 from {订单} a  WHERE 团号 In (Select  {订单}.团号 From ({订单} Inner JOIN {旅游线路表} ON {旅游线路表}.[线路名称] = {订单}.[线路名称]) Inner JOIN {收入项目表} ON {收入项目表}.[团号] = {订单}.[团号])