1

このSQLロジックが正しくデコードされているかどうか知りたいのですが。SQLは次のとおりです。

,[hrs].[Hours] - SUM(CASE WHEN [UnitState].[UnitStateType] <> 'ACTIVE' THEN [Allocation].[AllocatedEnergyMwh] ELSE 0 END / CAST([Unit].[NetDependableCapacity] AS FLOAT)) AS SH

私はこれを次のように解釈します:

if [UnitState].[UnitStateType] does not equal active then SH equals the sum of [Allocation].[AllocatedEnergyMwh] / 
    (float)[Unit].[NetDependableCapacity].  

else SH = [hrs].[Hours] 
4

3 に答える 3

1

近いですが、[hrs]。[Hours]を逃しました-最初のもののケース部分。

if [UnitState].[UnitStateType] does not equal active
    then SH equals [hrs].[Hours] minus the sum of [Allocation].[AllocatedEnergyMwh] / (float)[Unit].[NetDependableCapacity].  

else SH = [hrs].[Hours] minus (0)/[Unit].[NetDependableCapacity]
于 2012-05-23T19:54:11.600 に答える
1

ではない正確に。

SHにはにありません。elseは、合計の集計にのみ影響します。より正確には、次のように述べています。

SH = hours -
 (the sum of AllocatedEnergyMwh where StateType != ACTIVE) / NetDependableCapacity

elseは、合計でアクティブなAllocatedEnergyMwhを無視するためにのみ使用されます。これらの場合、AllocatedEnergyMwh=0に設定することでこれを行います。

于 2012-05-23T19:55:11.480 に答える
1

[UnitState]。[UnitStateType]がアクティブと等しくない場合

[hrs]。[Hours]マイナスsum([Allocation]。[AllocatedEnergyMwh] / [Unit]。[NetDependableCapacity])

そうでなければ

[hrs]。[Hours]マイナスsum(0 / [Unit]。[NetDependableCapacity])->意味[hrs]。[Hours]-0

于 2012-05-23T19:56:15.943 に答える