一次输入多次查询

One input multiple queries

我确定这是一个非常简单的答案,但我是新手,无法以正确的方式提出 Google 或任何问题。

我有一个查询,多次使用相同的输入,我需要知道的是如何才能让输入一次,多次使用?

即下面的最后一行至少使用了五次,而我当前的格式要求它五次

现在已进行部分修复(感谢 Kaushik Nayak 和您的回答),但它无法正常工作。我认为几个连接是我遇到问题的地方,v.dt 的值的初始 select 看起来很好

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.
)