0

特定の開始年と終了年の間に年が存在するかどうかを確認し、存在する年を返すストアド プロシージャを作成する必要があります。たとえば、開始年として 2000 年、終了年として 2005 年を指定すると、テーブルに存在する年が返されます。次のコードを試しましたが、機能しません。

ALTER PROCEDURE [dbo].[CheckExistenceforyear] 

    @StYear int  = 0, 
    @EdYear int = 0,
    @SubStationID int = 0,
    @YrString varchar(255) = null Output
AS
BEGIN   
SET NOCOUNT ON;    

    Declare @TempValue varchar(4)
    if @StYear <= @EdYear
    while @StYear <= @EdYear
    Begin
    if (select Count(Sub.Year) from table sub where Sub.Year=@StYear and Sub.SubStationID = @SubStationID) > 0
            Begin

            select  @TempValue=Sub.Year from table as sub where Sub.Year=@StYear and Sub.SubStationID = @SubStationID
                set @YrString = @YrString + @TempValue  
            End
            set @StYear = @StYear +1  
        End
    Else
        return -1 

    select @YrString    
END
4

1 に答える 1

2

次のような単純なクエリを使用できます

SELECT DISTINCT YEAR FROM TABLE WHERE YEAR BETWEEN STARTYEAR AND ENDYEAR.

BETWEEN演算子はWHERE 句で使用され、2 つの値の間のデータ範囲を選択します。

于 2013-01-05T05:04:04.943 に答える