2017-10-12 1 views
1

J'utilise cette requête mais elle continue à me montrer des valeurs NULL au lieu de 0, j'ai déjà essayé beaucoup de choses et je ne peux pas l'obtenir pour retourner 0 sur les valeurs nulles.Requête SQL avec Pivot montrant des NULL même avec Isnull

select p.* from 
    (
    select 'Ordenado Base' as Custos, nome, sum(isnull(prre.ere,0)) as OBase 
    from pr 
    inner join prre on pr.prstamp = prre.prstamp 
    where year(pr.data) = 2017 and prre.cr = 1 
    group by nome 
    ) as Tabela1 
    Pivot(
    sum(Tabela1.Obase) 
    for nome in ([Alexandra Maria da Costa Migueis],[ALEXANDRE PEDRO GOMES FREITAS],[Amílcar Leonardo dos Santos],[Ana Filipa Leitão Costa Martins Claro Viana Machado],[ANA PATRICIA FRED FILIPE]) as P 

Répondre

1

Vous devez modifier votre requête pour inclure ISNULL dans la liste de sélection. Supposons que vous n'avez pas valeur obase pour dire [Alexandra Maria da Costa Migueis] la valeur sous ce sera NULL

select 
     Custos, 
     [Alexandra Maria da Costa Migueis]=ISNULL([Alexandra Maria da Costa Migueis],0), 
     [ALEXANDRE PEDRO GOMES FREITAS]=ISNULL([ALEXANDRE PEDRO GOMES FREITAS],0), 
     [Amílcar Leonardo dos Santos]=ISNULL([Amílcar Leonardo dos Santos],0), 
     [Ana Filipa Leitão Costa Martins Claro Viana Machado]=ISNULL([Ana Filipa Leitão Costa Martins Claro Viana Machado],0), 
     [ANA PATRICIA FRED FILIPE]=ISNULL([ANA PATRICIA FRED FILIPE],0) 
from 
    (
     select 
      'Ordenado Base' as Custos, 
      nome, 
      sum(isnull(prre.ere,0)) as OBase 
     from pr 
     inner join prre on pr.prstamp = prre.prstamp 
      where year(pr.data) = 2017 and prre.cr = 1 
     group by nome 
    ) as Tabela1 
    Pivot 
    (
    sum(Tabela1.Obase) 
    for nome in 
     (
     [Alexandra Maria da Costa Migueis], 
     [ALEXANDRE PEDRO GOMES FREITAS], 
     [Amílcar Leonardo dos Santos], 
     [Ana Filipa Leitão Costa Martins Claro Viana Machado], 
     [ANA PATRICIA FRED FILIPE] 
     )-- was missing 
    ) as P 
+1

Il a travaillé geat, merci! –