首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

子查询报错?不可以这么写么?解决方法

2011-12-27 
子查询报错?不可以这么写么?selectstk_no,mtype,qty,doc,(casewhendocPINthenqty*-1elseqtyend)asnewqtyf

子查询报错?不可以这么写么?
select   stk_no,mtype,qty,doc,
(case
when   doc   =   'PIN '   then   qty*-1
else   qty
end)   as   newqty
from   spdtran   where   depart= 'ZZZ '   and   item_del= 'N ')
这个出来stk_no,mtype,qty,doc,newqty   5列

然后我外面套一个查询就报错

select   stk_no,mtype,newqty   from   (
select   stk_no,mtype,qty,doc,
(case
when   doc   =   'PIN '   then   qty*-1
else   qty
end)   as   newqty
from   spdtran   where   depart= 'ZZZ '   and   item_del= 'N ')

  ') '   附近有语法错误。


[解决办法]
select stk_no,mtype,newqty from (
select stk_no,mtype,qty,doc,
(case
when doc = 'PIN ' then qty*-1
else qty
end) as newqty
from spdtran where depart= 'ZZZ ' and item_del= 'N ') t --加别名
[解决办法]
select stk_no,mtype,newqty from (
select stk_no,mtype,qty,doc,
(case
when doc = 'PIN ' then qty*-1
else qty
end) as newqty
from spdtran where depart= 'ZZZ ' and item_del= 'N ') A

最後任意加個別名就可以

热点排行