我确信这是一个如此简单的答案,但我是新手,并且无法以正确的方式询问谷歌或其他任何问题。
我有一个查询,多次使用相同的输入,我需要知道的是如何才能多次使用输入一次?
即下面的最后一行使用至少五次,我当前的格式要求五次
现在部分修复(谢谢Kaushik Nayak和你的答案),但它无法正常工作。我认为几个连接是我遇到问题的地方,v.dt值的初始选择看起来很好
FROM Bmtrread Rd
INNER JOIN CUSTIMA.BSVCHRGE
ON Rd.CUST_REF = CUSTIMA.BSVCHRGE.U##CUST_REF
WHERE EXISTS
(SELECT *
FROM Bsvchrge Ch t cross join v
WHERE Rd.CUST_REF = Ch.U##CUST_REF
AND Ch.U##TARIFF_CODE = 'TB12'
AND Ch.CHG_PERCENT = 1
AND Rd.CURREAD_DT >= v.dt
您可以使用单个with子句来获取所需的值,然后在select或where子句中的任何位置使用该列
with v(dt)
AS
(
select to_date('&Start_Read_Date_DD_MM_YYYY','DD/MM/YYYY') from dual
)
select .. --your select statement
..
FROM Bmtrread Rd
INNER JOIN CUSTIMA.BSVCHRGE
ON Rd.CUST_REF = CUSTIMA.BSVCHRGE.U##CUST_REF
cross join v --add here
WHERE EXISTS
(SELECT *
FROM Bsvchrge Ch
WHERE Rd.CUST_REF = Ch.U##CUST_REF
AND Ch.U##TARIFF_CODE = 'TB12'
AND Ch.CHG_PERCENT = 1
AND Rd.CURREAD_DT >= v.dt --replace it with v.dt in all places.
)