Column not found using ALIAS in laravel

-2

I'm having a problem while accessing a column in the laravel query builder, the following code works in the Sql Workbench.

Vendas::selectRaw('if(faturamento.Codfaturamento is null, vendas.totalvenda, faturamento.valor) AS vlrFatura')
        ->leftjoin('faturamento', 'faturamento.CodVenda','=','vendas.CodVenda')
        ->leftjoin('cartaoaux', 'cartaoaux.idfatura','=','faturamento.Codfaturamento')
        ->leftjoin('cartao', 'cartaoaux.idcartao','=','cartao.id')
        ->leftjoin('chequeterceiros', 'chequeterceiros.CodCheque','=','faturamento.CodCheque')
        ->leftjoin('boleto', 'boleto.idFatura','=','faturamento.Codfaturamento')
        ->leftjoin('boleto_cedente', 'boleto_cedente.id','=','boleto.idCedente')
        ->whereRaw('day(vendas.dataemissao)=(day(NOW()) -1) and month(vendas.dataemissao)=(month(NOW())) and year(vendas.dataemissao)=(year(NOW())) and
        CASE 
        WHEN faturamento.tipo = "Cartao" THEN if(cartao.tipo="D","À Vista", "A Prazo")
            WHEN faturamento.tipo = "Cheque" THEN if(DATE(chequeterceiros.DataVencimento) > DATE(vendas.dataemissao), "A Prazo", "À Vista")
            WHEN faturamento.tipo = "Boleto" THEN "A Prazo"
            WHEN faturamento.tipo = "Conta" THEN "A Prazo"
            WHEN faturamento.tipo = "DebitoCC" THEN "A Prazo"
            WHEN vendas.Status    = "Conta cliente" THEN "A Prazo"
            WHEN faturamento.tipo = "-" then "A Prazo"
        else "À Vista" end = "A Prazo"')
        ->sum('vlrFatura');

I need to do the sum of the column "vlrFatura" that comes from checking if(faturamento.Codfaturamento is null, vendas.totalvenda, faturamento.valor) AS vlrFatura , and when I do ->sum('vlrFatura') it always returns me:

Column not found: 1054 Unknown column 'vlrFatura' in 'field list' (SQL: select sum ( vlrFatura ) as aggregate from vendas left join faturamento on faturamento CodVenda = vendas . CodVenda left join cartaoaux on cartaoaux . idfatura = faturamento . Codfaturamento left join cartao on cartaoaux . idcartao = cartao id left join chequeterceiros on chequeterceiros . CodCheque = faturamento . CodCheque left join boleto % () () () () () () () () () () () () () () () () () () () () () () ) and year (sales.dataemission) = (year (NOW ())) and CASE WHEN billing.type="Card" THEN if (card.type="D", " .type="Check" THEN if (DATE (checkout date.) > DATE (sales.dataemission), "Deadline", "View") WHEN billing.type="Ticket" THEN "Deadline" WHEN billing. type="Account" THEN "In Time" WHEN billing.type="Debit CC" THEN "In Time" WHEN sales.Status="Account nte "THEN" In Time "WHEN billing.type=" - "then" In Time "else" In Vista "end <

Thanks in advance.

    
asked by anonymous 03.10.2018 / 21:54

1 answer

0

I found the solution, in case someone found the same problem, or similar, I just changed some information in the query.

Vendas::leftjoin('faturamento', 'faturamento.CodVenda','=','vendas.CodVenda')
    ->leftjoin('cartaoaux', 'cartaoaux.idfatura','=','faturamento.Codfaturamento')
    ->leftjoin('cartao', 'cartaoaux.idcartao','=','cartao.id')
    ->leftjoin('chequeterceiros', 'chequeterceiros.CodCheque','=','faturamento.CodCheque')
    ->leftjoin('boleto', 'boleto.idFatura','=','faturamento.Codfaturamento')
    ->leftjoin('boleto_cedente', 'boleto_cedente.id','=','boleto.idCedente')
    ->whereRaw('day(vendas.dataemissao)=(day(NOW())) and month(vendas.dataemissao)=(month(NOW())) and year(vendas.dataemissao)=(year(NOW())) and
    CASE 
    WHEN faturamento.tipo = "Cartao" THEN if(cartao.tipo="D","À Vista", "A Prazo")
        WHEN faturamento.tipo = "Cheque" THEN if(DATE(chequeterceiros.DataVencimento) > DATE(vendas.dataemissao), "A Prazo", "À Vista")
        WHEN faturamento.tipo = "Boleto" THEN "A Prazo"
        WHEN faturamento.tipo = "Conta" THEN "A Prazo"
        WHEN faturamento.tipo = "DebitoCC" THEN "A Prazo"
        WHEN vendas.Status    = "Conta cliente" THEN "A Prazo"
        WHEN faturamento.tipo = "-" then "A Prazo"
    else "À Vista" end = "A Prazo"')
    ->sum(DB::Raw('if(faturamento.Codfaturamento is null, vendas.totalvenda, faturamento.valor)'));
    
10.10.2018 / 13:32