stringsql=@"SELECT COALESCE(SUM(dp.end_total_count - dp.base_total_count), 0) AS TotalQuantity, COUNT(DISTINCT w.id) AS ActiveWorkerCount FROM cnc_daily_production dp JOIN cnc_worker_machine wm ON dp.machine_id = wm.machine_id JOIN cnc_worker w ON wm.worker_id = w.id WHERE dp.production_date BETWEEN @Start AND @End AND dp.end_total_count > dp.base_total_count";
stringsql=@"SELECT COALESCE(SUM(dp.end_total_count - dp.base_total_count), 0) AS TotalQuantity, COUNT(DISTINCT dp.worker_id) AS ActiveWorkerCount FROM cnc_daily_production dp WHERE dp.production_date BETWEEN @Start AND @End AND dp.end_total_count > dp.base_total_count AND dp.worker_id IS NOT NULL";
stringsql=@"SELECT w.name AS WorkerName, COUNT(DISTINCT wm.machine_id) AS MachineCount, COUNT(DISTINCT dp.program_name) AS ProgramCount, COALESCE(SUM(dp.end_total_count - dp.base_total_count), 0) AS TotalQuantity, GROUP_CONCAT(DISTINCT wm.machine_id) AS MachineIds, GROUP_CONCAT(DISTINCT dp.program_name) AS ProgramNames FROM cnc_worker w JOIN cnc_worker_machine wm ON wm.worker_id = w.id LEFT JOIN cnc_daily_production dp ON dp.machine_id = wm.machine_id AND dp.production_date BETWEEN @Start AND @End AND dp.end_total_count > dp.base_total_count";
stringsql=@"SELECT w.name AS WorkerName, COUNT(DISTINCT dp.machine_id) AS MachineCount, COUNT(DISTINCT dp.program_name) AS ProgramCount, COALESCE(SUM(dp.end_total_count - dp.base_total_count), 0) AS TotalQuantity FROM cnc_daily_production dp JOIN cnc_worker w ON dp.worker_id = w.id WHERE dp.production_date BETWEEN @Start AND @End AND dp.end_total_count > dp.base_total_count";
varsql=@"SELECT m.id as Id, m.device_code as DeviceCode, m.name as Name, m.workshop_id as WorkshopId, ws.name as WorkshopName, m.collect_address_id as CollectAddressId, m.brand_id as BrandId, b.brand_name as BrandName, m.ip_address as IpAddress, m.is_enabled as IsEnabled,
LEFTJOINcnc_workerwONwm.worker_id=w.id" + where + @"ORDERBYm.idDESCLIMIT@LimitOFFSET@Offset";
LEFTJOINcnc_workerwONwm.worker_id=w.id
GROUPBYm.id,m.device_code,m.name,m.workshop_id,ws.name,m.collect_address_id,m.brand_id,b.brand_name,m.ip_address,m.is_enabled,m.last_ping_latency,m.last_program_name,m.last_collect_time" + where + @"ORDERBYm.idDESCLIMIT@LimitOFFSET@Offset";
p.Add("Limit",limit);
p.Add("Offset",offset);
vartotalSql=@"SELECT COUNT(*) FROM cnc_machine m"+where+@"";