none
eRRO sUBQUERY RRS feed

  • Pergunta

  • SELECT C2.R_E_C_N_O_,
    C2_FILIAL,
    C2_EMISSAO,
    C2_PRODUTO,
    --,SUM(C2_QUANT) OVER (PARTITION BY NULL ORDER BY C2.R_E_C_N_O_  ROWS BETWEEN unbounded preceding AND CURRENT ROW) AS Acumulado,
    B2_QATU as SaldoInicial,
    SUM(C2_QUANT) AS QtdOrdemProducao,
    B2_QATU + SUM(C2_QUANT) as 'SaldoInicial+Ordem',

    SAIDA = (SELECT 
    SUM(C6_QTDVEN)as QtdVenda 
    FROM SC6200
    INNER JOIN SC5200 ON C5_FILIAL = C6_FILIAL AND C6_NUM = C5_NUM AND SC5200.D_E_L_E_T_ <> '*'
    WHERE C5_EMISSAO ='20160824' AND SC6200.D_E_L_E_T_ <> '*' AND C5_FILIAL ='01' AND C5_NOTA <>'' AND C5_SERIE <> ''
    GROUP BY C5_EMISSAO,C6_PRODUTO ),
    B2_QATU + SUM(C2_QUANT) - 

    (SELECT 
    SUM(C6_QTDVEN)as QtdVenda 
    FROM SC6200
    INNER JOIN SC5200 ON C5_FILIAL = C6_FILIAL AND C6_NUM = C5_NUM AND SC5200.D_E_L_E_T_ <> '*'
    WHERE C5_EMISSAO ='20160824' AND SC6200.D_E_L_E_T_ <> '*' AND C5_FILIAL ='01' AND C5_NOTA <>'' AND C5_SERIE <> ''
    GROUP BY C5_EMISSAO ) as SaldoFinal  
    FROM SC2200 C2
    INNER JOIN SB2200 B2 ON C2_FILIAL = B2_FILIAL AND C2_LOCAL = B2_LOCAL AND C2_PRODUTO = B2_COD AND  B2.D_E_L_E_T_ <> '*'    
    WHERE C2_EMISSAO = '20160824' AND  C2.D_E_L_E_T_ <> '*' --AND C2_PRODUTO = '030900001' --AND C6_ENTREG = C2_EMISSAO
    GROUP BY C2_EMISSAO,C2_PRODUTO,C2_FILIAL,B2_QATU,C2_QUANT,C2.R_E_C_N_O_ 

    eRRO

    Mensagem 512, Nível 16, Estado 1, Linha 2
    A subconsulta retornou mais de 1 valor. Isso não é permitido quando a subconsulta segue um =, !=, <, <= , >, >= ou quando ela é usada como uma expressão.

    o ERRO ESTÁ NESSA SUBQUERY, POIS ELE RETORNA VARIOS VALORES, COMO RESOLVER ?

    oBRIGADO

    SAIDA = (SELECT 
    SUM(C6_QTDVEN)as QtdVenda 
    FROM SC6200
    INNER JOIN SC5200 ON C5_FILIAL = C6_FILIAL AND C6_NUM = C5_NUM AND SC5200.D_E_L_E_T_ <> '*'
    WHERE C5_EMISSAO ='20160824' AND SC6200.D_E_L_E_T_ <> '*' AND C5_FILIAL ='01' AND C5_NOTA <>'' AND C5_SERIE <> ''
    GROUP BY C5_EMISSAO,C6_PRODUTO ),
    B2_QATU + SUM(C2_QUANT) - 

    quinta-feira, 25 de agosto de 2016 16:54

Respostas

  • Isso ocorre pois o campo C6_PRODUTO está no group by porém não está na chave do seu join com a tabela externa.

    Adicione ele na cláusula WHERE da subquery que ela deverá retornar corretamente,


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 25 de agosto de 2016 21:09