2014-10-30 3 views
0

나는 조금 혼란스러운 것 같다.SQL 쿼리 결과의 위치 이동

enter image description here

내가 좋아하는 뭔가를 할 수 있도록 결과를 이동하는 방법이있다 : 나는 다음과 같은 결과를 반환하는 쿼리를 모두 null 값은 아래의 값으로 대체 될 것이다? 룸 서비스 미디 만이 널 값을 가지고, 나머지는 모두 이동합니다. 그것을 대체 할 방법이 있나.

내 쿼리 :

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

예상되는 출력은 어떻게됩니까? "아래"값이 무엇인지 알기 위해 어떻게 행을 정렬합니까? –

+0

코드 만 게시하면됩니다. 코드를 숨기면 다른 사람이 여러분을 도울 수 없으므로 도움이되지 않습니다. – Paolo

+0

"설명"열을 기준으로 그룹화해야합니다. – Mez

답변

0

을 읽어 주셔서 감사;

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

는 함께 결과를 group하는 데 필요한 코드와 설명에 따라 함께 결과를 이동합니다.