Sql server sql查询结果的位置转移

Sql server sql查询结果的位置转移,sql-server,select,case,Sql Server,Select,Case,我知道这个问题似乎有点让人困惑。我有一个返回以下结果的查询: 有没有一种方法可以改变结果,这样我就可以得到这样的结果:所有空值都将被下面的值替换?只有客房服务midi有空值,其余的都被移位。有没有办法取代这一点 我的问题是: select pc.code, pc.description, CASE WHEN g.description like 'NOURRITURE' and pc.description like 'PETIT DEJ

我知道这个问题似乎有点让人困惑。我有一个返回以下结果的查询:

有没有一种方法可以改变结果,这样我就可以得到这样的结果:所有空值都将被下面的值替换?只有客房服务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
感谢您阅读

请尝试以下内容

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

根据您需要的代码和描述将结果移动到一起。

您的预期输出是什么样的?您如何对行进行排序以了解“下面”的值是什么?发布您的代码,而不仅仅是结果。。。如果你隐藏代码,你将不会得到任何帮助,因为你正在阻止任何人帮助你。你需要按“描述”列分组。我已经应用了group by子句,但结果相同。。请看我的问题