2014-10-30 75 views
0

我知道這個問題似乎有點混淆。我有一個返回以下結果查詢:轉換sql查詢結果的位置

enter image description here

有沒有辦法轉移的結果,所以我可以有這樣的事情:所有的空值將通過下面的值替換?只有客房服務midi有一個空值,其餘的都轉移。有沒有辦法來取代它。

我的查詢:

select pc.code, pc.description, 
CASE 
          WHEN g.description like 'NOURRITURE' and pc.description like 'PETIT DEJEUNER' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'BANQUET' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'CASABLANCA CAFE MIDI' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'CASABLANCA CAFE MATIN' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'CASABLANCA CAFE SOIR' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'CASABLANCA CAFE BAR' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'ROOM SERVICE NUIT' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'ROOM SERVICE MIDI' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'ROOM SERVICE SOIR' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'ROOM SERVICE PDJ' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'XO LOUNGE/MIDI' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'BANQUET LUNCH' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'BANQUET DINNER' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'TABAC' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'XO LOUNGE/SOIR' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'Terasse Bleue' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'SPA' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'Seven' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'MINI BAR' THEN COALESCE(sum(ta.price),0) 
          WHEN g.description like 'NOURRITURE' and pc.description like 'CHEZ DADA' THEN COALESCE(sum(ta.price),0) 

         END as SumPriceFood, 

         CASE 
          WHEN g.description like 'BOISSON' and pc.description like 'PETIT DEJEUNER' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'BANQUET' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'CASABLANCA CAFE MIDI' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'CASABLANCA CAFE MATIN' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'CASABLANCA CAFE SOIR' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'CASABLANCA CAFE BAR' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'ROOM SERVICE NUIT' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'ROOM SERVICE MIDI' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'ROOM SERVICE SOIR' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'ROOM SERVICE PDJ' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'XO LOUNGE/MIDI' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'BANQUET LUNCH' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'BANQUET DINNER' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'TABAC' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'XO LOUNGE/SOIR' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'Terasse Bleue' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'SPA' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'Seven' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'MINI BAR' THEN sum(ta.price) 
          WHEN g.description like 'BOISSON' and pc.description like 'CHEZ DADA' THEN sum(ta.price) 

         END as SumPriceBoisson 
          from trans_articles ta, transactions t, profit_centers pc, article_causals ac, groups g, articles a 
          where t.id = ta.transaction_id 
          and pc.id = t.profit_center_id 
          and ta.causal_id = ac.id 
          and g.id = a.group_a_id 
          and a.id = ta.article_id 
          and ac.causal_type = 1       
          and ac.code in(103) 
          group by pc.code, pc.description, g.description 

感謝您閱讀

+0

您預期的輸出是什麼樣子?你如何訂購行以知道「下面」的值是什麼? – 2014-10-30 11:17:27

+0

發佈你的代碼,而不僅僅是結果...如果你隱藏代碼,你將不會有任何幫助,因爲你阻止任何人來幫助你。 – Paolo 2014-10-30 11:17:46

+0

您需要按「說明」列進行分組。 – Mez 2014-10-30 11:18:18

回答

0

請嘗試以下;

SELECT code 
     ,description 
     ,SUM(sumpricefood) sumpricefood 
     ,SUM(sumpriceboisson) AS sumpriceboisson 
GROUP BY code 
     ,description 

要根據你需要group在一起的結果的代碼和說明轉移的結果一起。