我不知道我的sql代码有什么问题。我能做什么?

问题描述 投票:0回答:1

这是我的代码:

--#SET TERMINATOR @
CREATE PROCEDURE DISPLAYTRANS (IN transNo VARCHAR(8))
DYNAMIC RESULT SETS 1
BEGIN
  BEGIN   
    
    DECLARE c1 CURSOR WITH RETURN FOR 
    
    SELECT s.transNo, s.salesDate, p.prodCode, p.description, p.unit, sd.quantity
    FROM sales s
    LEFT JOIN salesdetail sd ON s.transNo = sd.transNo
    LEFT JOIN product p ON sd.prodCode = p.prodCode
    WHERE s.transNo = transNo
    ORDER BY 1; 
    OPEN c1;
       
  END;
END@
--#SET TERMINATOR ;

我遇到了这个错误:

对列“TRANSNO”的引用不明确.. SQLCODE=-203, SQLSTATE=42702,驱动程序=4.32.28

我正在使用 db2 并执行此任务:制定一个存储过程 DISPLAYTRANS(),它将根据传递的交易编号显示相应的销售交易。显示交易编号、销售日期、产品代码、描述、单位、数量。使用 TR000039 测试脚本的输出。

sql error-handling db2
1个回答
0
投票

您的Where子句有错误 -

WHERE s.transNo = transNo
尝试将其更改为
WHERE s.transNo = p.transNo

© www.soinside.com 2019 - 2024. All rights reserved.