-1

select次の結果が得られるステートメントが1つあります

MasterID   Date
123        2012-10-15 00:00:00.000
124        2012-12-03 00:00:00.000
453        2012-01-07 00:00:00.000

(output is having 1999 rows)

ここで、この出力を 1 つのスカラー値関数に渡す必要があります。

MyCalculationFunction (@masterID,@date,@previousdate)

MyCalculationFunction関数のみを選択して、それぞれのすべての値を表示できるように、上記の値をに渡したいmasterID

また、パラメータとしてそこに提供する必要がpreviousdateあります。

使用できるカーソルを作成するのを手伝ってください。

4

1 に答える 1

2

SQL Server 2012 の場合:

SELECT  myCalculationFunction
                (
                masterId,
                [date],
                LAG([date]) OVER (ORDER BY [date])
                )
FROM    mytable m
ORDER BY
        [date]

以前のバージョンでは:

SELECT  myCalculationFunction
                (
                masterId,
                [date],
                (
                SELECT  TOP 1
                        [date]
                FROM    mytable mi
                WHERE   mi.[date] < m.[date]
                ORDER BY
                        mi.[date] DESC
                )
                )
FROM    mytable m
ORDER BY
        [date]
于 2013-04-25T16:31:13.173 に答える