2014-08-29 33 views
1

我想爲Miles創建兩列。一個用於「E」或「空」,另一個用於標記爲Miles和Loaded的列中的「L」或「Loaded」。SQL腳本創建兩個單獨的列

select 
    billing_history.order_id, 
    movement_order.order_id, 
    movement_order.movement_id, 
    movement.id, 
    movement.loaded, 
    Miles 
from 
    billing_history 
left join 
    movement_order on 
     billing_history.order_id = movement_order.order_id 
left join 
    (
     select 
      movement.id, 
      movement.loaded, 
      sum(movement.move_distance) as Miles 
     from 
      movement 
     group by 
      movement.id, 
      movement.loaded, 
      movement.move_distance 
    ) movement on 
     movement_order.movement_id = movement.id 
where 
    billing_history.delivery_date between '2014-07-01 00:00:00.000' and '2014-07-31 23:59:59.000' 

目前返回:

enter image description here

想回:

enter image description here

我知道如何以做組並刪除移動ID。我只是不知道如何到達「加載里程」和「空里程」兩欄。

+0

我們談論DDL或DML這裏?請小心指定問題的性質。 – 2014-08-29 13:50:58

+0

對不起。我是新來的。我不想更改數據庫,我只是想將數據拉到我的SQL Query(excel)內Transact SQL腳本 – Kathy 2014-08-29 13:56:17

回答

3

使用情況下像下面

Select Case when loaded = 'L' then miles else 0 end as loaded_mile, 
Case when loaded = 'E' then miles else 0 end as empty_mile, 
from billing_history; 
+0

非常感謝你!它工作 - yipee! – Kathy 2014-08-29 14:11:25

+0

@凱茜:如果能夠幫助你,請不要忘記加註和/或接受答案。 :) – Manhattan 2014-08-29 14:13:52

+0

@Nanashi - 感謝您的反饋。我在學 :) – Kathy 2014-08-29 14:41:01