0
我有一个进程中,我需要根据条件来执行4个不同的查询,如果从第一次查询的结果为0,那么就应该执行第二个查询等 我使用@@行数找到的行数,然后传递值。这里是我的代码:多个特效的执行
ALTER PROCEDURE FetchingValues @StartLocation Varchar(200),@EndLocation Varchar(200)
AS
DECLARE
@Count NUMERIC
BEGIN
if @@ROWCOUNT=0
BEGIN
select DISTINCT TOP 1 t1.Train_No,Max(t1.Distance) as TotalDistance,0 as Waiting_Time
from Rail t1
where t1.Source_Station_Name Like @StartLocation+'%'
and t1.Destination_Station_Name Like @EndLocation+'%'
GROUP BY t1.Train_No
Order BY TotalDistance ASC
SET @Count= (SELECT @@ROWCOUNT)
SELECT @@ROWCOUNT
END
ELSE if @Count <> 1
BEGIN
EXEC Connection1 @StartLocation,@EndLocation
SET @Count=(SELECT @@ROWCOUNT)
SELECT @@ROWCOUNT
END
ELSE if @Count <> 1
BEGIN
EXEC Connection2 @StartLocation,@EndLocation
SET @Count=(SELECT @@ROWCOUNT)
SELECT @@ROWCOUNT
END
ELSE
BEGIN
select DISTINCT TOP 1 (t1.Train_No+','+ t2.Train_No+','+t3.Train_No+','+t4.Train_No) as TrainSeq,
Max(t1.Distance)+Max(t2.Distance)+Max(t3.Distance)+Max(t4.Distance)as TotalDistance
from Rail t1
join Rail t2 on (t2.Source_Station_Name=t1.Destination_Station_Name)
Join Rail t3 on (t3.Source_Station_Name=t2.Destination_Station_Name)
Join Rail t4 on (t4.Source_Station_Name=t3.Destination_Station_Name)
where t1.Source_Station_Name Like @StartLocation+'%'
and t2.Destination_Station_Name Like @EndLocation+'%'
Group by t1.Train_No,T2.Train_No,t3.Train_No,t4.Train_No
ORDER BY TotalDistance ASC
END
我想通过传递2个值那么我应该在所有的查询服务执行查询,并应得到输出
你能详细说明吗?我没有得到你,或者你可以告诉我怎么去执行它 –
@VivekMoningi更新 –
当我执行它,并通过EXEC停止在连接1的值,但它应该去连接2 –