Foxtable(狐表)用户栏目专家坐堂 → 请教个MSSQL别名引用的问题


  共有3998人关注过本帖树形打印复制链接

主题:请教个MSSQL别名引用的问题

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


加好友 发短信
等级:四尾狐 帖子:936 积分:7719 威望:0 精华:0 注册:2013/7/7 13:37:00
请教个MSSQL别名引用的问题  发帖心情 Post By:2013/10/15 10:22:00 [只看该作者]

这是我的代码:
Select a.WorkerID,a.WorkerName,(Select sum(ProductPrice) from (Select WorkerID,BagNum,StyleNum,SinglePrice,StyleNum * SinglePrice As ProductPrice,{OrderProductProcess}.ProcessName,{OrderProductProcess}.OrderID From {NoteList} Inner JOIN {OrderProductProcess} ON {OrderProductProcess}.[OrderID] = {NoteList}.[OrderID] And {OrderProductProcess}.[ProcessName] = {NoteList}.[ProcessName]) b where a.WorkerID = b.WorkerID) As 计件工资,(Select sum(OddMoney) from {OddList} d where d.WorkerID = a.WorkerID) As 零活工资,计件工资 + 零活工资 As 员工工资 from {BaseWorker} a


这是简化后的示例代码:
select (a+b) as outC,(c+d) as outB,(outC/outB) as outE
from tabName


前面的outC和outB是自定义的临时字段,但是在同一条句子中要引用这两个值,并产生outE。
在运行中出错:列名'outC'无效。
实际上outB也是无效的,只是程序只遇到第一个错就退出了。

请问,这种情况,该如何办?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/10/15 10:48:00 [只看该作者]

select (a+b) as outC,(c+d) as outB,((a+b) /(c+d)) as outE
from tabName

 回到顶部
帅哥哟,离线,有人找我吗?
jnletao
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:936 积分:7719 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2013/10/15 10:54:00 [只看该作者]

Bin大哥,我从度娘上搜到这个答案了,可是我的实际语句比我最上方写的代码要还复杂,((a+b) /(c+d))   太麻烦了。
有没有更简单的方法?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/10/15 10:57:00 [只看该作者]

我也很菜,一直都没搞懂.ACCESS是可以这么用的,不知道为什么MSSQL就是不支持这样写.

 回到顶部
帅哥哟,离线,有人找我吗?
jnletao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:936 积分:7719 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2013/10/15 11:05:00 [只看该作者]

以下是引用Bin在2013-10-15 10:57:00的发言:
我也很菜,一直都没搞懂.ACCESS是可以这么用的,不知道为什么MSSQL就是不支持这样写.

图片点击可在新窗口打开查看大哥过谦了,没有您的帮助我们起步会更难!图片点击可在新窗口打开查看!学习MSSQL视图中


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/10/15 11:11:00 [只看该作者]

以下是引用Bin在2013-10-15 10:57:00的发言:
我也很菜,一直都没搞懂.ACCESS是可以这么用的,不知道为什么MSSQL就是不支持这样写.

机制不一样,因为几个列是同步进行的,那个时候还没产生别名,也就无法引用了


 回到顶部