2012-05-23 107 views
1

我想知道我是否正確解碼了這個SQL邏輯。下面是在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] 

回答

1

不完全是。

對於SH,沒有其他。其他隻影響彙總。更準確地說,它說:

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

的else只用於忽略和活動AllocatedEnergyMwh。它通過在這些情況下設置AllocatedEnergyMwh = 0來實現。

+1

謝謝你的幫助 –

1

這是接近,但你錯過了[小時] [時間] - 爲第一個案例中的一部分。

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] 
+0

所以,我沒有。謝謝。 –

1

如果[UnitState] [UnitStateType]不等於有源然後

[小時]。[小時]減去總和([分配]。[AllocatedEnergyMwh]/[單位]。[NetDependableCapacity])

否則

[小時] [小時]減去總和(0/[單位] [NetDependableCapacity]) - >含義[小時] [小時] - 0

+0

謝謝你的幫助 –