Reputation: 2146
I have the following query in my stored procedure
DECLARE @I INT
DECLARE @TenPercent int
DECLARE @RowsCount int
SET @TenPercent =10
SET @I = 1
SELECT
@I, dbo.tblVegetationType.VegTypeCode, dbo.tblVegetationType.VegTypeName
FROM
dbo.tblVegetationType
INNER JOIN
dbo.tblVegTypeVegFormationLink ON dbo.tblVegetationType.VegTypeID = dbo.tblVegTypeVegFormationLink.VegTypeID
INNER JOIN
tblCMAVegTypeLink ON dbo.tblVegetationType.VegTypeID = dbo.tblCMAVegTypeLink.VegTypeID
WHERE
dbo.tblVegetationType.PercentageCleared >= (@PercentCleared - @TenPercent)
AND dbo.tblVegTypeVegFormationLink.VegetationFormationID = @VegetationFormationID
AND dbo.tblCMAVegTypeLink.CMAID = @CMAID
I have following condition
dbo.tblVegetationType.PercentageCleared >= (@PercentCleared - @TenPercent)
What I am trying to do here: if PercentCleared
is 60% then I want to query to pick the list from 50 %.
So I just add the SET @TenPercent = 10
and subtract from the condition.
Is that a right way to do?
Upvotes: 0
Views: 990
Reputation: 10274
Another way of writing the query can be:
SELECT @I,
VT.VegTypeCode,
VT.VegTypeName
FROM dbo.tblVegetationType VT
INNER JOIN dbo.tblVegTypeVegFormationLink VTVF
ON VT.VegTypeID = VTVF.VegTypeID
INNER JOIN tblCMAVegTypeLink CVT
ON VT.VegTypeID = CVT.VegTypeID
WHERE 1= case when @PercentCleared >= 60 and VT.PercentageCleared <= 50 then 1
-- you can add condition when @PercentCleared < 60 then what values of
-- VT.PercentageCleared are to be considered
when @PercentCleared < 60 and VT.PercentageCleared <= 50 then 1
end
AND VTVF.VegetationFormationID = @VegetationFormationID
AND CVT.CMAID = @CMAID
Upvotes: 1