我不熟悉从DB2进行查询,但是有一种情况,我需要选择可以除以5,无余数,超过1k的供应商付款,以及相同金额的三笔或更多笔付款。
SELECT T.VendorID, T.Amount, T.Date, ROW_NUMBER ()
OVER (PARTITION BY T.VendorID, T.Amount ORDER BY T.Date) as "Order"
FROM TABLE T
WHERE T.Amount % 5 = 0 AND T.Amount >= 1000;
因此,我将其写入子查询中,然后在主查询中放置一个参数(“顺序> = 3”),但是,看来%模运算符会抛出错误。因为我无权访问生产数据库并无法通过Cognos 11 SQL传递查询表,所以对我来说有点麻烦。对我如何获得相同结果有帮助吗?
谢谢你, BStinson
答案 0 :(得分:1)
您不会使用%运算符,因为SQL不是完整的编程语言。您将要使用MOD();功能,方法如下:
MOD( dividend, divider )
即:
SELECT T.VendorID, T.Amount, T.Date, ROW_NUMBER () OVER (PARTITION BY T.VendorID, T.Amount ORDER BY T.Date) as "Order"
FROM TABLE T
WHERE T.Amount >= 1000 AND MOD(T.Amount,5) = 0;
希望这可以帮助您走上正确的道路!