23 -

select count(1) as cantidad from (select * from (select distinct p.products_id, p.mg_rubro, IF(p.product_grouper_id, CONCAT("g_", p.product_grouper_id), p.products_id) as p_group_id, CAST((p.products_quantity - IF(p.products_min_stock_to_sell IS NULL,0,p.products_min_stock_to_sell)) AS DOUBLE) as products_quantity, p.products_quantity_future, CONCAT (c.categories_id) AS categories_id, (p.product_grouper_id IS NOT NULL) as is_grouped, IF(p.product_grouper_id && mpg.code != "" , mpg.code, p.products_model) as products_model , IF(p.product_grouper_id, mpg.name, pd.products_name) as products_name, p.products_date_added as pdate_added, tr.tax_priority from products p inner join products_description pd on p.products_id = pd.products_id and pd.language_id inner join categories c on c.categories_id = main_category_id left join specials s on p.products_id = s.products_id and s.status = 1 and (s.expires_date is null or DATE(s.expires_date) = "0000-00-00" or DATE(CURDATE()) <= DATE(s.expires_date) ) and ( s.start_date is null or DATE(CURDATE()) >= DATE(s.start_date) ) left join mods_configurable_products_prices mcpp on p.products_id = mcpp.products_id left join mods_product_groupers mpg on p.product_grouper_id = mpg.id AND mpg.is_rentable = 0 left join manufacturers m on p.manufacturers_id = m.manufacturers_id inner join (SELECT * FROM dummy_categories ORDER BY categories_order) as categories_ordered on main_category_id = categories_ordered.categories_id left join tax_rates tr on p.products_tax_class_id = tr.tax_class_id left join zones_to_geo_zones gz on tr.tax_zone_id = gz.geo_zone_id where c.categories_id in ( SELECT t1.categories_id FROM products_to_categories pc JOIN categories t1 ON pc.categories_id = t1.categories_id left JOIN categories AS t2 ON t2.categories_id = t1.parent_id left JOIN categories AS t3 ON t3.categories_id = t2.parent_id left JOIN categories AS t4 ON t4.categories_id = t3.parent_id left JOIN categories AS t5 ON t5.categories_id = t4.parent_id WHERE products_id = p.products_id AND t1.categories_status = 1 AND (t2.categories_id IS NULL OR t2.categories_status = 1) AND (t3.categories_id IS NULL OR t3.categories_status = 1) AND (t4.categories_id IS NULL OR t4.categories_status = 1) AND (t4.categories_id IS NULL OR t4.categories_status = 1) GROUP BY t1.categories_id ) and c.categories_status = 1 and p.products_status = 1 and p.is_rentable = 0 and (p.products_price_6 > 0 or p.show_priceless = 1) and p.configurable_products_only = 0 AND (m.manufacturers_id is null OR m.manufacturers_status = 1) and ( gz.zone_country_id is null or gz.zone_country_id = 0 or gz.zone_country_id = 0) and ( gz.zone_id is null or gz.zone_id = 0 or gz.zone_id = 0) group by p.products_id, tr.tax_priority order by IF((p.products_quantity - IF(p.products_min_stock_to_sell IS NULL,0,p.products_min_stock_to_sell)) > 0, 1, 0) desc, p.order_in_grouper asc, p.products_price asc, CASE WHEN (p.products_quantity - IF(p.products_min_stock_to_sell IS NULL,0,p.products_min_stock_to_sell)) < 1 THEN -1 WHEN (p.products_quantity - IF(p.products_min_stock_to_sell IS NULL,0,p.products_min_stock_to_sell)) >= 0 THEN -2 ELSE 1 END asc, categories_ordered.categories_order asc, p.orden asc, products_name asc, p.products_model asc) as tabla group by p_group_id) as tabla

[TEP STOP]