ストアド プロシージャが正しく動作しない理由を特定しようとしています。問題は、連結パラメーターを使用する場合です。完成したら、これらを 6 つまたは 7 つ作成し、それぞれが最後の上に構築されます。=、like、%、スペース、スペースなしを含むすべてのバリエーションを試しましたが、これを機能させるための正しい構文を思いつくことができません。「ハードコードされた」テストも行いましたが、正常に動作するため、データは正しいです。ヘルプ!ありがとう
ここにコードがあります -
ALTER PROCEDURE [dbo].[rspSCLTEST]
(@RRID as varchar(4),
@State as varchar(2),
@Sub as varchar(75))
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL as varchar(4000)
SET @SQL = @State
--add the subdivision to the where statement
If @Sub = 'ALL'
SET @SQL = @SQL
ELSE
SET @SQL += ' AND (C.SubDivision = '+ @Sub + ')'
SELECT C.CRID, C.DOT, C.RR, C.Pref, C.MP, C.Division, C.SubDivision, C.City, C.Street,
C.State, C.County, C.RestrictedCounty, C.Remarks, C.SpecialInstructions, C.Route, C.ThirdAppRequired,
C.MainTrks, C.OtherTrks, C.OnSpur, C.MaxSpeed, C.SubContracted, C.FenceEncroachment, C.Lat, C.Long,
C.PropertyType, C.WarningDevice,C.Surface, C.ROWNE, C.ROWNW, C.ROWSE, C.ROWSW, C.ROWWidth, C.ExtNE,
C.ExtNW, C.ExtSE, C.ExtSW, C.TempActive, C.PCO, A.App1Date, A.App1Cut, A.App1Spray, A.App1Inspect,
A.App2Date, A.App2Cut, A.App2Spray, A.App2Inspect, A.App3Date, A.App3Cut, A.App3Spray, A.App3Inspect
FROM Crossings AS C LEFT OUTER JOIN AppData AS A ON C.CRID = A.CRID
WHERE (C.DeletedCrossing = 0) AND (C.RR = @RRID)
AND C.State = @SQL
END