我正在这两个查询之间建立一个UNION:
$first =
DB::table('pedido')
->select(DB::raw('date(fecha_pago) as fecha'),DB::raw('sum(subtotal) as ingreso'),DB::raw('0 as egreso'))
->where('idestado','=','2')
->groupBy(DB::raw('date(fecha_pago)'));
$second =
DB::table('egreso')
->select(DB::raw('date(fecha) as fecha'),DB::raw('0 as ingreso'),DB::raw('sum(monto) as egreso'))
->groupBy(DB::raw('date(fecha)'));
$final_query=
DB::select(DB::raw('date(fecha),sum(ingreso) as ingreso,sum(egreso) as egreso'))
->union($first)->union($second)
->groupBy(DB::raw('date(fecha)'))
->get();
我得到了错误:
SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有一个错误;请参见语法。在第1行(SQL:date(fecha),sum()中,检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在“ date(fecha),sum(ingreso)as ingreso,sum(egreso)as egreso”附近使用ingreso)为ingreso,sum(egreso)为egreso)
答案 0 :(得分:0)
DB::select()
执行原始查询,与DB::table()->select()
不同,DB::table()
用于定义查询构建器选择的字段。
您在最终查询中缺少date(fecha),sum(ingreso) as ingreso,sum(egreso) as egreso
,如果没有它,您将不会使用查询生成器,而实际上将仅运行<?php
$value = 2;
$text = rawurlencode("www.domain.com/products.php?productId=".$value);
?>
<a href="https://api.whatsapp.com/send?text=<?php echo $text; ?>"><i class="fa fa-whatsapp"></i></a>
。