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.