Mysql 多个选择,带“选择”;“联合所有人”;不起作用
查询不工作:Mysql 多个选择,带“选择”;“联合所有人”;不起作用,mysql,sql,Mysql,Sql,查询不工作: select * from (select department as "Delegación", company as Compañía, config as "Configuración Vehículos", docs as "Documentos Vehículos", count(distinct idClientTruck) as vehículos, su
select * from
(select
department as "Delegación",
company as Compañía,
config as "Configuración Vehículos",
docs as "Documentos Vehículos",
count(distinct idClientTruck) as vehículos,
sum(ko) as "Doc. incorrectos Vehículos",
round(sum(ko)/(docs*count(distinct idClientTruck))*100) as "% Docs. Vehículos"
from
(
select
cd.name as department,
cfg_g.name as config,
c.businessname as company,
(select count(*) from widoc_config where idwidocconfiggroup=cfg_g.idwidocconfiggroup and idstatus=71001 and required=true) as docs,
wv.idClientTruck as idEntity,
cfg_g.idwidocconfiggroup as idWidocConfigGroup,
cfg.idwidocconfig as idWidocConfig,
cfg.iddocument as idDocument,
a.idstatus as idStatus,
if(a.idstatus=43002,"0","1") as ko
from
widoc_config_group cfg_g
join widoc_config cfg on cfg.idwidocconfiggroup=cfg_g.idwidocconfiggroup and cfg.idstatus=71001 and cfg.required=true
join widoc_client wc on wc.idclient=cfg_g.idclient and wc.idstatus=71001
join client c on c.idclient=wc.idclientassociated and c.idstatus_client=5004
join widoc_vehicle wv on wv.idwidocclient=wc.idwidocclient and wv.idstatus=71001
join client_truck t on t.idclient_truck=wv.idclienttruck and t.idstatus_truckpart=33005
join widoc_fulfill_vehicle fv on fv.idwidocconfiggroup=cfg_g.idwidocconfiggroup and fv.idwidocvehicle=wv.idwidocvehicle
left join attachment_group a on a.idclient=wc.idclientAssociated and a.iddocument=cfg.iddocument and a.idstatus!=43004 and a.idFK=wv.idClientTruck
left join client_department cd on cd.idClientDepartment=wc.idClientDepartment and cd.idStatus=71001
where
cfg_g.idclient = 3683
#wc.idclientAssociated = 3683
and cfg_g.identitytype=73004
and cfg_g.idstatus=71001
)v
) t UNION ALL
(select
config as "Configuración Conductores",
docs as "Documentos Conductores",
count(distinct idDriver) as Conductores,
sum(ko) as "Doc. incorrectos Conductores",
round(sum(ko)/(docs*count(distinct idDriver))*100) as "% Docs. Conductores"
from
(
select
cd.name as department,
cfg_g.name as config,
c.businessname as company,
(select count(*) from widoc_config where idwidocconfiggroup=cfg_g.idwidocconfiggroup and idstatus=71001 and required=true) as docs,
wd.idDriver as idEntity,
cfg_g.idwidocconfiggroup as idWidocConfigGroup,
cfg.idwidocconfig as idWidocConfig,
cfg.iddocument as idDocument,
a.idstatus as idStatus,
if(a.idstatus=43002,"0","1") as ko
from
widoc_config_group cfg_g
join widoc_config cfg on cfg.idwidocconfiggroup=cfg_g.idwidocconfiggroup and cfg.idstatus=71001 and cfg.required=true
join widoc_client wc on wc.idclient=cfg_g.idclient and wc.idstatus=71001
join client c on c.idclient=wc.idclientassociated and c.idstatus_client=5004
join widoc_driver wd on wd.idwidocclient=wc.idwidocclient and wd.idstatus=71001
join driver d on d.iddriver=wd.iddriver and d.idstatus=71001
join widoc_fulfill_driver fd on fd.idwidocconfiggroup=cfg_g.idwidocconfiggroup and fd.idwidocdriver=wd.idwidocdriver
left join attachment_group a on a.idclient=wc.idclientAssociated and a.iddocument=cfg.iddocument and a.idstatus!=43004 and a.idFK=wd.idDriver
left join client_department cd on cd.idClientDepartment=wc.idClientDepartment and cd.idStatus=71001
where
cfg_g.idclient = 3683
#wc.idclientAssociated = 1865
and cfg_g.identitytype=73003
and cfg_g.idstatus=71001
)x) d
group by department,company,config,idWidocConfigGroup
;
错误代码:1064。您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第74行“d,按部门、公司、配置分组,idWidocConfigGroup”附近使用的正确语法
单独查询:
select
department as Delegación,
company as Compañía,
config as Configuración,
docs as Documentos,
count(distinct idDriver) as Conductores,
sum(ko) as "Doc. incorrectos",
round(sum(ko)/(docs*count(distinct idDriver))*100) as "% incumplimiento"
from
(
select
cd.name as department,
cfg_g.name as config,
c.businessname as company,
(select count(*) from widoc_config where idwidocconfiggroup=cfg_g.idwidocconfiggroup and idstatus=71001 and required=true) as docs,
wd.idDriver,
cfg_g.idwidocconfiggroup,
cfg.idwidocconfig,
cfg.iddocument,
a.idstatus,
if(a.idstatus=43002,"0","1") as ko
from
widoc_config_group cfg_g
join widoc_config cfg on cfg.idwidocconfiggroup=cfg_g.idwidocconfiggroup and cfg.idstatus=71001 and cfg.required=true
join widoc_client wc on wc.idclient=cfg_g.idclient and wc.idstatus=71001
join client c on c.idclient=wc.idclientassociated and c.idstatus_client=5004
join widoc_driver wd on wd.idwidocclient=wc.idwidocclient and wd.idstatus=71001
join driver d on d.iddriver=wd.iddriver and d.idstatus=71001
join widoc_fulfill_driver fd on fd.idwidocconfiggroup=cfg_g.idwidocconfiggroup and fd.idwidocdriver=wd.idwidocdriver
left join attachment_group a on a.idclient=wc.idclientAssociated and a.iddocument=cfg.iddocument and a.idstatus!=43004 and a.idFK=wd.idDriver
left join client_department cd on cd.idClientDepartment=wc.idClientDepartment and cd.idStatus=71001
where
cfg_g.idclient = 3683
#wc.idclientAssociated = 1865
and cfg_g.identitytype=73003
and cfg_g.idstatus=71001
) t
group by department,company,config,idwidocconfiggroup;
第二个问题:
select
department as "Delegación",
company as Compañía,
config as Configuración,
docs as Documentos,
count(distinct idClientTruck) as vehículos,
sum(ko) as "Doc. incorrectos",
round(sum(ko)/(docs*count(distinct idClientTruck))*100) as "% incumplimiento"
from
(
select
cd.name as department,
cfg_g.name as config,
c.businessname as company,
(select count(*) from widoc_config where idwidocconfiggroup=cfg_g.idwidocconfiggroup and idstatus=71001 and required=true) as docs,
wv.idClientTruck,
cfg_g.idwidocconfiggroup,
cfg.idwidocconfig,
cfg.iddocument,
a.idstatus,
if(a.idstatus=43002,"0","1") as ko
from
widoc_config_group cfg_g
join widoc_config cfg on cfg.idwidocconfiggroup=cfg_g.idwidocconfiggroup and cfg.idstatus=71001 and cfg.required=true
join widoc_client wc on wc.idclient=cfg_g.idclient and wc.idstatus=71001
join client c on c.idclient=wc.idclientassociated and c.idstatus_client=5004
join widoc_vehicle wv on wv.idwidocclient=wc.idwidocclient and wv.idstatus=71001
join client_truck t on t.idclient_truck=wv.idclienttruck and t.idstatus_truckpart=33005
join widoc_fulfill_vehicle fv on fv.idwidocconfiggroup=cfg_g.idwidocconfiggroup and fv.idwidocvehicle=wv.idwidocvehicle
left join attachment_group a on a.idclient=wc.idclientAssociated and a.iddocument=cfg.iddocument and a.idstatus!=43004 and a.idFK=wv.idClientTruck
left join client_department cd on cd.idClientDepartment=wc.idClientDepartment and cd.idStatus=71001
where
cfg_g.idclient = 3683
#wc.idclientAssociated = 3683
and cfg_g.identitytype=73004
and cfg_g.idstatus=71001
) t
group by department,company,config,idwidocconfiggroup;
它们都很好。我在你的查询中发现了很多问题
select
department as "Delegación",
company as Compañía,
config as "Configuración Vehículos",
docs as "Documentos Vehículos",
count(distinct idClientTruck) as vehículos,
sum(ko) as "Doc. incorrectos Vehículos",
round(sum(ko)/(docs*count(distinct idClientTruck))*100) as "% Docs. Vehículos"
select
config as "Configuración Conductores",
docs as "Documentos Conductores",
count(distinct idDriver) as Conductores,
sum(ko) as "Doc. incorrectos Conductores",
round(sum(ko)/(docs*count(distinct idDriver))*100) as "% Docs. Conductores"
按部门、公司、配置、idWidocConfigGroup分组
需要将其放置在正确的位置它应该位于别名x之后将
)x)d...
更改为)x组(按部门、公司、配置、idWidocConfigGroup)
相同的错误,即使我在“)”之后删除了“d”,则此错误显示为:错误代码:1054。“字段列表”中的未知列“idClientTruck”要聚合什么?在进行聚合的每个语句中,都必须添加一个group by。你能为预期的结果添加一个简短的例子吗?Ramon,你已经写了两次相同的查询了。另外,请检查@Zaynul Abadin Tuhin的答案,他提出了一些很好的建议。这不是同一个查询。如果我删除“d”和“t”,错误代码:1248。每个派生表都必须有自己的别名