[英]Mysql Query for IF condition and Group by
SELECT ps.job_no, ps.booking_no,
ps.type,ps.shipped_by, ps.invoice_no,
ps.transporters_id,ps.clients_id,ps.return_terminal,
ps.destinations_id,ps.forwarder_name,
containers.container_size,containers.container_no,
containers.truck_no,
ps.driver_cell_no,ps.shipping_line_name,
containers.cro_no,vessels.vessel_name,vessels.eta,
containers.empty_pickup_point,containers.loading_point,
ps.particular
FROM planning_sheet AS ps
LEFT JOIN vessels
ON vessels.bookingno= ps.booking_no
LEFT JOIN containers
ON containers.bookingno = ps.booking_no
GROUP BY ps.clients_id
我是构建此类复杂查询的新手,查询定义如下,我希望此查询中针对“ clients_id”的所有记录我针对此查询得到一条记录。
我也想在“类型= 0”中的“类型”列中写入“空气”或“类型= 1”而不是“海洋”。
在使用GROUP BY
子句之前,您必须先聚合一些列。 有关某些汇总功能,请参见此处。 但是,如果要修改type
的输出,则可以使用inLine Case
语句。
SELECT ....,
CASE ps.`type`
when 0 then 'Air'
when 1 then 'Sea'
END as `type`,
....
FROM ....
您可以将其放入查询中
select
CASE type
when '0' then 'Air'
when '1' then 'Sea'
END as type
尝试这个::
SELECT ps.job_no, ps.booking_no,
ps.type,ps.shipped_by, ps.invoice_no,
ps.transporters_id,ps.clients_id,ps.return_terminal,
ps.destinations_id,ps.forwarder_name,
containers.container_size,containers.container_no,
containers.truck_no,
ps.driver_cell_no,ps.shipping_line_name,
containers.cro_no,vessels.vessel_name,vessels.eta,
containers.empty_pickup_point,containers.loading_point,
ps.particular ,
CASE ps.type when '0' then 'Air'
when '1' then 'Sea'
END as type
FROM planning_sheet AS ps
LEFT JOIN vessels
ON vessels.bookingno= ps.booking_no
LEFT JOIN containers
ON containers.bookingno = ps.booking_no
尝试这个..
SELECT ps.job_no, ps.booking_no,
CASE ps.type WHEN 0 THEN 'Air' WHEN 1 THEN 'Sea' ELSE 'None' END
as PLAN_TYPE,
ps.shipped_by, ps.invoice_no,
ps.transporters_id,ps.clients_id,ps.return_terminal,
ps.destinations_id,ps.forwarder_name,
containers.container_size,containers.container_no,
containers.truck_no,
ps.driver_cell_no,ps.shipping_line_name,
containers.cro_no,vessels.vessel_name,vessels.eta,
containers.empty_pickup_point,containers.loading_point,
ps.particular
FROM planning_sheet AS ps
LEFT JOIN vessels
ON vessels.bookingno= ps.booking_no
LEFT JOIN containers
ON containers.bookingno = ps.booking_no
根据ps.type
数据类型使用
CASE ps.type WHEN 0 THEN 'Air' WHEN 1 THEN 'Sea' ELSE 'None' END
要么
CASE ps.type WHEN '0' THEN 'Air' WHEN '1' THEN 'Sea' ELSE 'None' END
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.