0

SELECT TOP 1...... の結果を SQL Server ストアド プロシージャのローカル変数に割り当てたいと考えています。以下のストアド プロシージャのセクションを見つけてください。

SELECT 
(
    SELECT @billingMeterID =  TOP 1 bmt.BillingMeterTypeID
    FROM SDP_BillingMeterType bmt
    JOIN SDP_Series s ON s.SeriesID = bmt.SeriesID
    WHERE s.EngineID = SDP_PricePointBase.EngineID
) AS BillingMeterTypeID,                
dbo.fn_GetTotalStreetCost(EngineID, ProgramID, ConsumableTypeID, @billingMeterID) AS StreetCost,
[PricePointBaseID] AS PricePointBaseID, 
(SELECT TOP 1 CountryID FROM SDP_Country) AS CountryID,-- Only US is considered for now
dbo.fn_GetTotalStreetCost(EngineID, ProgramID, ConsumableTypeID, @billingMeterID) * 0.5 AS StatedCost
@dummyCost AS StreetCostUSD,
@dummyCost AS StreetCostEURO,
@dummyCost AS StatedCostUSD,
@dummyCost AS StatedCostEURO,
@exchangeRateSourceID AS ExchangeRateSourceID -- populating dummy value as the source is unknown at present
FROM SDP_PricePointBase
4

3 に答える 3

1
SELECT @billingMeterID =  TOP 1 bmt.BillingMeterTypeID
                FROM SDP_BillingMeterType bmt
                JOIN SDP_Series s ON s.SeriesID = bmt.SeriesID
                Join DP_PricePointBase on s.EngineID = SDP_PricePointBase.EngineID

SELECT       @billingMeterID AS BillingMeterTypeID,                
            dbo.fn_GetTotalStreetCost(EngineID, ProgramID, ConsumableTypeID,  
             @billingMeterID) AS StreetCost,
            [PricePointBaseID] AS PricePointBaseID, 
            (SELECT TOP 1 CountryID FROM SDP_Country) AS CountryID,
             -- Only US is considered for now
            dbo.fn_GetTotalStreetCost(EngineID, ProgramID, ConsumableTypeID, 
            @billingMeterID) * 0.5 AS StatedCost
            @dummyCost AS StreetCostUSD,
            @dummyCost AS StreetCostEURO,
            @dummyCost AS StatedCostUSD,
            @dummyCost AS StatedCostEURO,
            @exchangeRateSourceID AS ExchangeRateSourceID 
            -- populating dummy value as the source is unknown at present                                 
            FROM SDP_PricePointBase
于 2012-06-29T11:13:09.093 に答える
0

別のステートメントで変数を使用する選択に設定する必要があります。

于 2012-06-29T11:08:49.183 に答える
0
SELECT @billingMeterID = TOP 1 bmt.BillingMeterTypeID

あるべきだからうまくいかない

SELECT TOP 1 @billingMeterID = bmt.BillingMeterTypeID

また、副選択では使用できません。

于 2012-06-29T13:22:44.677 に答える