一个输入多个查询

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

我确信这是一个如此简单的答案,但我是新手,并且无法以正确的方式询问谷歌或其他任何问题。

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

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

现在部分修复(谢谢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
oracle input oracle-sqldeveloper where
1个回答
0
投票

您可以使用单个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.
) 
© www.soinside.com 2019 - 2024. All rights reserved.