这是我的代码:
--#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 测试脚本的输出。
您的Where子句有错误 -
WHERE s.transNo = transNo
尝试将其更改为WHERE s.transNo = p.transNo