【发布时间】:2016-11-27 12:23:46
【问题描述】:
我在 mysql 查询中使用这些代码
select c1.date,sum(SELECT IFNULL(cx.purchase-cx.sold,0))+MAX(p.openqty) as opening,c1.purchase,c1.sold,
sum(SELECT IFNULL(cx.purchase-cx.sold,0))+MAX(p.openqty) + c1.purchase-c1.sold as closing
from
(select open_qty as openqty from stock ) p
left join
(select IFNULL(a.date,b.date) as date,SELECT IFNULL(a.qty,0) as purchase,SELECT IFNULL(b.qty,0) as sold from arrival a FULL JOIN pouring b ON a.date = b.date order by 1) c1
on c1.purchase +p.openqty>0
left join
(select IFNULL(a.date,b.date) as date,SELECT IFNULL(a.qty,0) as purchase,SELECT IFNULL(b.qty,0) as sold from arrival a FULL JOIN pouring b ON a.date = b.date order by 1) cx
on c1.date>cx.date
group by c1.date,c1.purchase,c1.sold
上面写着:
An alias was previously found. (near "purchase" at position 170)
An alias was previously found. (near "c1" at position 179)
An alias was previously found. (near "sold" at position 182)
An alias was previously found. (near "closing" at position 190)
MySQL 说:文档
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以了解正确的语法使用
'SELECT IFNULL(cx.purchase-cx.sold,0))+MAX(p.openqty) 附近为 开幕,c1.purchase,c1。在第 1 行
请帮忙如何克服?
【问题讨论】:
-
您有两次完全相同的子查询,两次都使用相同的变量名。你试过改变它们吗?
-
将
sum(SELECT IFNULL(cx.purchase-cx.sold,0))更改为(SELECT sum(cx.purchase-cx.sold)。明白了吗? -
先生我改成:select c1.date, SELECT sum(cx.purchase-cx.sold)+MAX(p.openqty) as opening,c1.purchase,c1.sold, sum(SELECT IFNULL(cx.purchase-cx.sold,0))+MAX(p.openqty) + c1.purchase-c1.sold as close from (select open_qty as openqty from stock ) p 但还是一样的错误
标签: mysql