请问这条SQL语句为什么出错?要实现这个功能怎么写SQL语句? 分数以后一定给!thanks

kangaroo 2001-06-29 11:23:31
select * from (select a.Storehouse,b.* from InStock as a inner join InStockDetail as b on a.InStockNO = b.InStockNO ) where Storehouse='SZ'
...全文
104 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kradwang 2001-06-29
  • 打赏
  • 举报
回复
这样写一定要在select子句后面加上别名
但是你这句话好像没有太大意义.要实现你的目的只要这样写就可以了:
select a.Storehouse,b.* from InStock as a inner join InStockDetail as b on a.InStockNO = b.InStockNO
where b.Storehouse='SZ'
pxq 2001-06-29
  • 打赏
  • 举报
回复
你的语句写错了,应该如下。

select * from (select a.Storehouse,b.* from InStock as a inner join InStockDetail as b on a.InStockNO = b.InStockNO ) b where b.Storehouse='SZ'
ie4888 2001-06-29
  • 打赏
  • 举报
回复
select 不能直接用于from 中,
select a.Storehouse,b.* from InStock as a inner join InStockDetail as b on a.InStockNO = b.InStockNO
似乎结果是多Column,且之间没有分隔符。
1、保证结果必须保证是唯一的。
2、符合From 的语法
用参数试试。
Select * From &Table_name Where Storehouse='SZ';(Oracel下如此用)
kangaroo 2001-06-29
  • 打赏
  • 举报
回复
我用的数据库是MYSQL, 好像他不支持这种SQL语句。
hughie 2001-06-29
  • 打赏
  • 举报
回复
我以前也出现过这类错误,你只要不你的后面的子查询加一个别名就可以了,一定要加,不然就出错误信息。

应该为:
select a.*
from (select a.Storehouse,b.* from InStock as a inner join InStockDetail as b on a.InStockNO = b.InStockNO ) a
where a.Storehouse='SZ'
pxq 2001-06-29
  • 打赏
  • 举报
回复
对,但是你原来那条语句就是错的,系统不知道Storehouse这个字段是哪个表的。

11,848

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧