Mysql 子查询返回多行?
这是我的代码,但我需要groupby选项,因为我需要按Derparti对子查询进行分组,例如,我需要找到每个科室的医生人数,因此我需要子查询返回多行Mysql 子查询返回多行?,mysql,subquery,Mysql,Subquery,这是我的代码,但我需要groupby选项,因为我需要按Derparti对子查询进行分组,例如,我需要找到每个科室的医生人数,因此我需要子查询返回多行 SELECT d.Dreparti, (SELECT avg(Paga) FROM dpaga dp WHERE d.titulli=dp.titulli GROUP BY Dreparti), (SELECT COUNT(*) FROM Doktori GROUP BY Dreparti), (SELEC
SELECT d.Dreparti,
(SELECT avg(Paga)
FROM dpaga dp
WHERE d.titulli=dp.titulli
GROUP BY Dreparti),
(SELECT COUNT(*)
FROM Doktori
GROUP BY Dreparti),
(SELECT COUNT(*)
FROM doktori d,
Hospitalizimidata hd
WHERE d.did=hd.did
GROUP BY Dreparti),
(SELECT sum(CmimipaTVSH)
FROM faturat f,
hospitalizimidata h,
doktori d
WHERE f.hid=h.hid
AND h.did=d.did
AND DataFatures BETWEEN CAST(CURDATE() - INTERVAL 365 DAY AS DATE) AND CAST(curdate() AS DATE)
GROUP BY Dreparti) ,
(SELECT sum(Cmimi)
FROM faturat f,
hospitalizimidata h,
doktori d
WHERE f.hid=h.hid
AND h.did=d.did
AND DataFatures BETWEEN CAST(CURDATE() - INTERVAL 365 DAY AS DATE) AND CAST(curdate() AS DATE)
GROUP BY Dreparti) ,
(SELECT sum(Cmimi)
FROM pagesat p,
faturat f,
hospitalizimidata h,
doktori d
WHERE f.hid=h.hid
AND h.did=d.did
AND p.fid=f.fid
AND DataFatures BETWEEN CAST(CURDATE() - INTERVAL 365 DAY AS DATE) AND CAST(curdate() AS DATE)
GROUP BY Dreparti)
FROM doktori d
GROUP BY Dreparti;
您需要将子查询作为派生表从“选择”列表移动到“从”列表。使用表/查询作为第一个返回所有(或至少大多数)部门的表/查询,并使用departments字段在tge first one上左键联接其他派生表。假设doctors表包含所有科室,我将为您提供3个子查询的示例代码:
SELECT * FROM
(SELECT Dreparti, COUNT(*) AS NoOfDoctors
FROM Doktori
GROUP BY Dreparti) t1
LEFT JOIN (SELECT Dreparti, avg(Paga) AS AvgPaga
FROM dpaga dp inner join Doktori d
ON d.titulli=dp.titulli
GROUP BY Dreparti) t2 ON t1.Dreparti=d2.Dreparti
LEFT JOIN (SELECT Dreparti, COUNT(*) AS NoOfSomething
FROM doktori d INNER JOIN
Hospitalizimidata hd
ON d.did=hd.did
GROUP BY Dreparti) t3 ON t1.Dreparti=t3.Dreparti
但是,我会使用部门的主数据表作为最左边的表。因为你没有提到它,所以我没有把它包括在内。你想实现什么?尽量简化您的案例,您的问题很长。请提供预期输出!我不确定是否可以在单个查询中包含所有这些查询。哪些表包含此Dreparti字段?哪个表包含所有的Dreparti值?欢迎使用堆栈溢出。您已将问题标记为和。请编辑您的问题并删除其中一个标记——它们用于不同的SQL方言。另外,请尽量减少代码示例,并指定希望得到的结果集示例。@shadowtable doktori包含Dreparti