SQL WHILE语句错误“列前缀与查询中使用的表名或别名不匹配”

时间:2013-03-14 16:32:08

标签: sql sql-server-2008 while-loop running-total

我正在尝试运行以下SQL语句并收到以下消息

列前缀'timInvtTran'与查询中使用的表名或别名不匹配。

基本上我要做的是在每次库存交易后获得最终的库存数量(QOH)。 对此的一个假设是,当总结TranQty时,您将获得最终的QOH。 我正在尝试循环数据并添加一个运行总计的TranQty,根据定义,它将是QOH。我将我的QOH变量命名为@currQOH。

我知道这个问题来自我的SET声明,但我无法弄清楚它为什么会发生。

作为旁注,我是否正确地获得TranQty的总计?我不想写入数据库,因此我不想为我的运行总计创建新表。我研究了高低,找不到任何东西。

非常感谢任何帮助。

DECLARE @currQOH INT
SET @currQOH=0

WHILE(  Select ItemKey  from timInvtTran) = 41511
BEGIN
    SET @currQOH = @currQOH + timInvtTran.TranQty
    BREAK

END

select @currQOH, ItemKey, TranID
from timInvtTran
where timInvtTran.ItemKey = 41511  and substring(tranid,12,2) <>'SH'
order by timinvttran.createdate desc

BTW快乐PI日!

1 个答案:

答案 0 :(得分:0)

试试这个

DECLARE @currQOH INT
SET @currQOH= ( select sum(TranQty) from timInvtTran where ItemKey   = 41511 )

select @currQOH, ItemKey, TranID
from timInvtTran
where timInvtTran.ItemKey = 41511  and substring(tranid,12,2) <>'SH'
order by timInvttran.createdate desc

注意最后一行的案例变化:timinvttran - &gt; timInvttran