【发布时间】:2020-11-30 09:48:58
【问题描述】:
这是我的数据:
我要选择这样的数据 ▼
我尝试在分组中选择它,但不是单独显示数据。
这是我的代码
select
date_format((select receive_contract_datetime from worklist_info where id = worklist_id), '%y.%m.%d') as receive_datetime,
(select trade_name from trade_info where id = (select worklist_trade_id from worklist_info where id = worklist_id)) as trade_name,
(select staff_name from staff_info where id =
(select account_staff_id from account_info where id =
(select worklist_account_id from worklist_info where id = worklist_id))) as worklist_writer,
date_format((select worklist_output_plan_date from worklist_info where id = worklist_id), '%y.%m.%d') as output_plan_date,
(select worklist_project_name from worklist_info where id = worklist_id) as prj_name,
worklist_sub_process_id,
count(worklist_sub_process_id),
sum(worklist_sub_state),
-- (sum(worklist_sub_process_id = 1)*2) as laser_count, worklist_sub_state
-- sum(worklist_sub_process_id = 1) as laser_count,
-- if(sum(worklist_sub_process_id = 1) > 0,count(IF(worklist_sub_process_id = 1, if(worklist_sub_state = 0,1,null), null)),-1) as laser_wait,
-- if(sum(worklist_sub_process_id = 1) > 0,count(IF(worklist_sub_process_id = 1, if(worklist_sub_state = 1,1,null), null)),-1) as laser_run,
-- if(sum(worklist_sub_process_id = 1) > 0,count(IF(worklist_sub_process_id = 1, if(worklist_sub_state = 2,1,null), null)),-1) as laser_end,
(select worklist_comment from worklist_info where id = worklist_id) as worklist_comment,
(select worklist_lot from worklist_info where id = worklist_id) as lot_number
from worklist_info_sub group by worklist_id,worklist_sub_process_id;
【问题讨论】:
-
图片不安全。至少以可编辑文本的形式提供示例数据(最好的方法 - 作为 CREATE TABLE + INSERT INTO,或作为在线小提琴)。
-
这是 MySQL/MariaDB 不支持的枢轴。使用条件聚合或动态 SQL。
-
欢迎来到 SO。请参阅Why should I provide an MCRE for what seems to me to be a very simple SQL query - 但同时,请认真考虑处理应用程序代码中的数据显示问题。
-
@Strawberry 对不起,我不擅长这个网站,谢谢你的建议
-
对于 MariaDB,请参阅 stackoverflow.com/a/56670844/1766831
标签: mysql group-by mariadb pivot pivot-table