如何创建EXCEL文件以避免删除项目



目前,我的Excel文件正在创建显示DB中的所有记录。问题是它也显示了删除的项。

下面是我为当前excel文件编写的代码:

public function collection()
{
$resultados = collect( DB::select('SELECT
articulos.id,
articulos.codigo_comercial,
articulos.codigo_interno,
articulos.descripcion,
coalesce( articulos.marca, 'SIN MARCA' ) as marca,
coalesce( articulos.modelo, 'SIN MODELO' ) as modelo,
coalesce( articulos.categoria,'SIN CATEGORIA' ) as categoria,
if( articulos.subcategoria = 'null', 'SIN CATEGORIA', coalesce( articulos.subcategoria, 'SIN CATEGORIA' ) ) as subcategoria,
(SELECT existencia FROM costo_promedio_historico WHERE costo_promedio_historico.articulo_id = articulos.id ORDER BY created_at DESC LIMIT 1) as existencia,
articulos.unidad_medida,
articulos.codigo_producto_sat,
articulos.codigo_unidad_sat,
CASE
WHEN JSON_EXTRACT( articulos.impuestos_compra, "$[0]" ) = "EXENTO" THEN 'EXENTO 0%'
WHEN JSON_EXTRACT( articulos.impuestos_compra, "$[0]" ) = "IVA" THEN 'IVA 16%'
ELSE 'SIN IMPUESTOS CONFIGURADOS'
END as impuestos_compra,
CASE
WHEN JSON_EXTRACT( articulos.impuestos_venta, "$[0]" ) = "EXENTO" THEN 'EXENTO 0%'
WHEN JSON_EXTRACT( articulos.impuestos_venta, "$[0]" ) = "IVA" THEN 'IVA 16%'
ELSE 'SIN IMPUESTOS CONFIGURADOS'
END as impuestos_venta,
FORMAT( ( SELECT listas_precios_articulos.costo_compra FROM listas_precios_articulos WHERE listas_precios_articulos.articulo_id = articulos.id ORDER BY listas_precios_articulos.created_at DESC LIMIT 1 ), 2 ) as costo_compra,
( SELECT listas_precios_articulos.tipo_utilidad FROM listas_precios_articulos WHERE listas_precios_articulos.articulo_id = articulos.id ORDER BY listas_precios_articulos.created_at DESC LIMIT 1 ) as tipo_utilidad,
FORMAT( ( SELECT listas_precios_articulos.porcentaje FROM listas_precios_articulos WHERE listas_precios_articulos.articulo_id = articulos.id ORDER BY listas_precios_articulos.created_at DESC LIMIT 1 ) ,2) as porcentaje,
FORMAT( ( SELECT listas_precios_articulos.precio_venta FROM listas_precios_articulos WHERE listas_precios_articulos.articulo_id = articulos.id ORDER BY listas_precios_articulos.created_at DESC LIMIT 1 ), 2 ) as precio_venta,
FORMAT( ( SELECT listas_precios_articulos.utilidad FROM listas_precios_articulos WHERE listas_precios_articulos.articulo_id = articulos.id ORDER BY listas_precios_articulos.created_at DESC LIMIT 1 ), 2 ) as utilidad FROM articulos')
);
return $resultados;
}

如果我在FROM articulos后面写这个,excel将被创建,但为空:

WHERE articulos.deleted_at = NULL

如何避免所有已删除的项?

我希望我的输出只显示deleted_at == NULL

时的结果致意。

在MySQL中... = NULL总是返回NULL。使用IS/IS NOT关键字:

WHERE articulos.deleted_at IS NULL

最新更新