早上好,Stack,我需要一些重要的幫助。將Excel公式轉換爲SQL案例
我必須將EXCEL公式轉換爲SQL案例。 當我到達最後一節時,整個事情一直在我身上散開。我不能爲了我的生活而弄清楚如何正確地設置它,而且我厭倦了在它上面踢腳。
我的主要問題是Excel如何處理它的if/then是
這裏是Excel中的多個「其他」藥水:
=IF(AND(W7+H7<=0,IF(E7-H7-S7>0,E7-H7-S7,0)<=0),0,IF(W7+H7<IF(E7-H7-S7>0,E7-H7-S7,0),IF(W7+H7<0,0,W7+H7),IF(E7-H7-S7>0,IF(W7>H7,E7-S7,H7+AF7),H7)))
下面是相關的部分,它們是如何被轉換爲SQL至今。
E4 = TotInChar.TotInChar
H4 = CAST(tmpdc.[3]AS Decimal (10,2)) + CAST(tmpdc.[5]AS Decimal (10,2))
W4 = CAST(tmpdc.[14]AS decimal(10,2))
S4 = T4MathBlock.TTIV
AF4 = [AmountIncluded].[Amount]
這裏是SQL案例到目前爲止,我已經做了。 (其設計成一個外部的一部分應用,因爲我處理自己外所有數學部分適用任何人的方式,來我後面會發現分段並正確記錄的代碼)
SELECT (CASE
WHEN CAST(tmpdc1.[14]AS decimal(10,2))+(CAST(tmpdc1.[3]AS Decimal (10,2)) + CAST(tmpdc1.[5]AS Decimal (10,2))) <= 0
AND (CASE WHEN(TotInChar.TotInChar -(CAST(tmpdc1.[3]AS Decimal (10,2)) + CAST(tmpdc1.[5]AS Decimal (10,2)))- T4MathBlock.TTIV) >0
THEN TotInChar.TotInChar -(CAST(tmpdc1.[3]AS Decimal (10,2)) + CAST(tmpdc1.[5]AS Decimal (10,2)))- T4MathBlock.TTIV
ELSE '0.00' END) <=0 THEN '0.00'
/* part 2*/
WHEN CAST(tmpdc1.[14] AS decimal(10,2))+(CAST(tmpdc1.[3]AS Decimal (10,2)) + CAST(tmpdc1.[5]AS Decimal (10,2)))
<
(CASE WHEN (TotInChar.TotInChar -(CAST(tmpdc1.[3]AS Decimal (10,2)) + CAST(tmpdc1.[5]AS Decimal (10,2)))- T4MathBlock.TTIV)
> 0
THEN TotInChar.TotInChar -(CAST(tmpdc1.[3]AS Decimal (10,2)) + CAST(tmpdc1.[5]AS Decimal (10,2)))- T4MathBlock.TTIV
ELSE '0.00'
END)
THEN (TotInChar.TotInChar -(CAST(tmpdc1.[3]AS Decimal (10,2)) + CAST(tmpdc1.[5]AS Decimal (10,2)))- T4MathBlock.TTIV)
/*Part 3*/
WHEN CAST(tmpdc.[14]AS decimal(10,2))+CAST(tmpdc.[3]AS Decimal (10,2)) + CAST(tmpdc.[5]AS Decimal (10,2))
< 0 THEN '0.00'
ELSE (CAST(tmpdc.[14]AS decimal(10,2))+CAST(tmpdc.[3]AS Decimal (10,2)) + CAST(tmpdc.[5]AS Decimal (10,2)))
/*Part 4*/
WHEN TotInChar.TotInChar -(CAST(tmpdc1.[3]AS Decimal (10,2)) + CAST(tmpdc1.[5]AS Decimal (10,2)))- T4MathBlock.TTIV
> 0 THEN
(CASE(CAST(tmpdc.[14]AS decimal(10,2)) > CAST(tmpdc.[3]AS Decimal (10,2)) + CAST(tmpdc.[5]AS Decimal (10,2))
THEN TotInChar.TotInChar - T4MathBlock.TTIV ELSE '0.00')
ELSE CAST(tmpdc.[3]AS Decimal (10,2)) + CAST(tmpdc.[5]AS Decimal (10,2)))
End
End) AS[ANT4]
From #TempDisclosure tmpdc1
WHERE tmpdc1.[Number] = Tmpdc.[Number]
感謝您的幫助,您可以在此給,我在這已經工作了約10小時,現在,我的大腦只是傷害
我建議重新開始。一次只做一步,一旦你有一個單獨的部分工作,不要管它。 –
是的,我已經做了這個,現在幾次,以上是我在整個事情上的第四次嘗試。此時我需要另一雙眼睛,因爲我正在注視着眼睛。 我們之前都在這裏,你需要走開,讓別人說「嘿,你忘了一個」)或類似的東西。 – user1949329
'多個'其他'藥水',呃? – Jodrell