1
我正在處理名爲FCT_HISTO_PORTES的表,其中包含ID_MVT_EXPL和ID_PTE字段,它們是整數。在該表中,ID_MVT_EXPL與一個,兩個或三個ID_PTE相關聯。計算字段的條件顯示
下面是一個例子:
select top 1000
ID_MVT_EXPL,
ID_PTE
from FCT_HISTO_PORTES
ID_MVT_EXPL ID_PTE
3945546 6
3945547 25
3945548 56
3945548 57
3945549 25
3945550 52
3945551 57
3945551 58
3945553 56
3945557 51
3945558 57
3945558 58
你可以看到 「3945546」 有一個ID_PTE和 「3945548」 有兩種不同的ID_PTE。
遊戲的目的是,我可以爲每個ID_MVT_EXPL顯示一行,並命名字段爲ID_PTE_1,ID_PTE_2,ID_PTE_3。
我嘗試過使用此SELECT,但結果不正確,因爲所有ID_PTE都適合ID_PTE_1,並將其他兩個留給NULL。
select top 1000
ID_MVT_EXPL,
MIN(id_pte) as ID_PTE_1,
case
when COUNT(id_pte) = 2
then MAX(id_pte)
when COUNT(id_pte) = 3
then SUM(id_pte)-(MIN(ID_PTE)+MAX(ID_PTE))
end as ID_PTE_2,
case
when COUNT(id_pte) = 3
then MAX(id_pte)
end as ID_PTE_3
from FCT_HISTO_PORTES
group by ID_MVT_EXPL, ID_PTE
ID_MVT_EXPL ID_PTE_1 ID_PTE_2 ID_PTE_3
3945546 6 NULL NULL
3945547 25 NULL NULL
3945548 56 NULL NULL
3945548 57 NULL NULL
3945549 25 NULL NULL
3945550 52 NULL NULL
3945551 57 NULL NULL
3945551 58 NULL NULL
3945553 56 NULL NULL
3945557 51 NULL NULL
3945558 57 NULL NULL
3945558 58 NULL NULL
那麼在我的SELECT中需要改變什麼?
呀你的建議,這樣的作品非常感謝你! :) – 2014-12-02 15:19:13
@ Jean-ChristopheCASTELLANA:沒問題。樂意效勞 – Arion 2014-12-02 15:33:22