Column number of supplied values does not mach table definition - SQL SERVER

1

I have the following problem in the sql server when I put the CASE clause at the end of this line of code:

DECLARE @RESULTADO TABLE (
Total INT,
GrupoTitulo VARCHAR(255),
GrupoChave VARCHAR(255),
GrupoNome VARCHAR(255),
GrupoOrdem VARCHAR(255),
ProdGrupo VARCHAR(255),
ProdGrupoOrdem INT,
ProdCodEstr VARCHAR(40),
ProdCodRed VARCHAR(7),
ProdNome VARCHAR(80),
ProdUnidMedCod VARCHAR(7),
ProdUnidMedPos SMALLINT,
ValTotVendasFinal NUMERIC(14,2),
ValTotVendasIPI NUMERIC(14,2),
ValTotVendas NUMERIC(14,2),
ValTotDevolucoes NUMERIC(14,2),
QtdVendas NUMERIC(24,9),
QtdDevolucoes NUMERIC(24,9),

------
ValTotVendasFinalFD NUMERIC(14,2),
ValTotVendasIPIFD NUMERIC(14,2),
ValTotVendasFD NUMERIC(14,2),
ValTotDevolucoesFD NUMERIC(14,2),
QtdVendasFD NUMERIC(24,9),
QtdDevolucoesFD NUMERIC(24,9)
)


 INSERT INTO @RESULTADO
 SELECT
0,
CAST (CASE
    WHEN '' = 'CIDADE' THEN 'Cidade'
    WHEN '' = 'ESTADO' THEN 'Estado'
    WHEN '' = 'CLIENTE' THEN 'Cliente'
    WHEN '' = 'GRUPO' THEN 'Grupo de Produtos'
    WHEN '' = 'VENDEDOR' THEN 'Vendedor'
    WHEN '' = 'CATEGORIA' THEN 'Categoria'
END AS VARCHAR(255)) GrupoTitulo,
ISNULL(V.GrupoChave,D.GrupoChave) GrupoChave,
ISNULL(V.GrupoNome,D.GrupoNome) GrupoNome,
ISNULL(V.GrupoOrdem, D.GrupoOrdem),
CAST(CASE
    WHEN P.ProdCodEstr LIKE '07%'    THEN 'Fralda'
    WHEN P.ProdCodEstr LIKE '30.03%' THEN 'Bobina'
    WHEN P.ProdCodEstr LIKE '30%'    THEN 'Tissue'
    ELSE 'Outros'
END AS VARCHAR(255)) ProdGrupo,
    CASE
    WHEN P.ProdCodEstr LIKE '07%'    THEN 2
    WHEN P.ProdCodEstr LIKE '30.03%' THEN 3
    WHEN P.ProdCodEstr LIKE '30%'    THEN 1
    ELSE 4
END ProdGrupoOrdem,
P.ProdCodEstr, P.ProdCodRed, P.ProdNome,
UPPER(ISNULL(V.ProdUnidMedCod, D.ProdUnidMedCod)) ProdUnidMedCod,
ISNULL(V.ProdUnidMedPos, D.ProdUnidMedPos) ProdUnidMedPos,

V.ItNFValTotFinal ValTotVendasFinal,
V.ItNFValIpi ValTotVendasIPI,
(V.ItNFValTotFinal - V.ItNFValIpi) ValTotVendas,

D.ItNFValTotFinal ValTotDevolucoes,
V.ItNFQtd QtdVendas, D.ItNFQtd QtdDevolucoes,

-- O ERRO DÁ A PARTIR DAQUI - QUANDO EU INSIRO ESTAS CONDIÇÕES:

Column name or number of supplied values does not match table definition.

  CASE WHEN UPPER(ISNULL(V.ProdUnidMedCod, D.ProdUnidMedCod)) = 'FD' THEN 
  V.ItNFValTotFinal ELSE 0 END ValTotVendasFinalFD,
  CASE WHEN UPPER(ISNULL(V.ProdUnidMedCod, D.ProdUnidMedCod)) = 'FD' THEN 
  V.ItNFValIpi ELSE 0 END ValTotVendasIPIFD,
  CASE WHEN UPPER(ISNULL(V.ProdUnidMedCod, D.ProdUnidMedCod)) = 'FD' THEN 
  (V.ItNFValTotFinal - V.ItNFValIpi) ELSE 0 END ValTotVendasFD,

  CASE WHEN UPPER(ISNULL(V.ProdUnidMedCod, D.ProdUnidMedCod)) = 'FD' THEN 
  D.ItNFValTotFinal ELSE 0 END ValTotDevolucoesFD,
  CASE WHEN UPPER(ISNULL(V.ProdUnidMedCod, D.ProdUnidMedCod)) = 'FD' THEN 
  V.ItNFQtd ELSE 0 END QtdVendasFD,
  CASE WHEN UPPER(ISNULL(V.ProdUnidMedCod, D.ProdUnidMedCod)) = 'FD' THEN 
  D.ItNFQtd ELSE 0 END QtdDevolucoesFD
    
asked by anonymous 10.08.2018 / 13:49

0 answers