我有一张类似于下图的表格
我的目标是为每个组织(即该电子表格中的每一行)编写一个应输出id的查询和一个名为pvt
的列
pvt
列的值应基于以下逻辑:
如果组织的交付百分比:
与其他车辆相比,使用汽车,超过 90%,然后pvt
应为Cars
}
与其他车辆相比,使用面包车以超过 90%的速度制作,pvt
应为Vans
}
与其他车辆相比,使用高速公路,超过 90%,然后pvt
应为Coaches
}
与其他车辆相比,使用高速公路,超过 90%,然后pvt
应为Trucks
}
如果这些车辆列没有达到组织交付的 90%,那么
答案 0 :(得分:0)
可以这样做,
SELECT
CASE WHEN ((truck / t.vehicles) * 100) > 90 THEN 'Truck'
WHEN ((van / t.vehicles) * 100) > 90 THEN 'Van'
WHEN ((coach / t.vehicles) * 100) > 90 THEN 'Coach'
WHEN (((truck/ t.vehicles) * 100) + ((van / t.vehicles) * 100)) > 90 THEN 'Truck and Van'
WHEN (((coach / t.vehicles) * 100) + ((lorry/ t.vehicles) * 100)) > 90 THEN 'Lorry and Coach'
ELSE 'Mixed'
END AS `pvt`
FROM Table f
INNER JOIN (SELECT t.id,SUM(van) + SUM(truck) + SUM(coach) + SUM(lorry) AS `vehicles` FROM Table t GROUP BY t.id) t ON t.id=f.id