MySQL请求计数问题
我想计算上个月在每个诊所就诊的患者数量,因此我使用了以下请求:MySQL请求计数问题,mysql,sql,count,group-by,Mysql,Sql,Count,Group By,我想计算上个月在每个诊所就诊的患者数量,因此我使用了以下请求: SELECT dispensaire.IdDisp, COUNT(SELECT consultation.NumDossier FROM consultation WHERE consultation.Date IN (SELECT consultation.Date FROM consultation
SELECT dispensaire.IdDisp,
COUNT(SELECT consultation.NumDossier
FROM consultation
WHERE consultation.Date IN (SELECT consultation.Date
FROM consultation
WHERE consultation.Date BETWEEN (CURRENT_DATE( ) - INTERVAL 1 MONTH) AND CURRENT_DATE( )))
FROM dispensaire, medecin, consultation
WHERE dispensaire.IdDisp=medecin.IdDisp
AND medecin.IdDisp.consultation.IdDisp
GROUP BY dispensaire.IdDisp
我找不到我的请求有什么不对!谢谢您在下一行有一个输入错误-两列之间缺少等号:
AND medecin.IdDisp.consultation.IdDisp
线路应为:
AND medecin.IdDisp = consultation.IdDisp
我可能建议您将查询重写为类似这样的内容,在表上使用JOIN语法,而不是WHERE
子句中的JOIN:
SELECT d.IdDisp,
COUNT(c.NumDossier)
FROM dispensaire d
INNER JOIN medecin m
ON d.IdDisp = m.IdDisp
INNER JOIN consultation c
ON m.IdDisp = c.IdDisp
WHERE c.Date BETWEEN (CURRENT_DATE( ) - INTERVAL 1 MONTH) AND CURRENT_DATE( ))
GROUP BY d.IdDisp
您在下一行有一个输入错误-两列之间缺少等号:
AND medecin.IdDisp.consultation.IdDisp
线路应为:
AND medecin.IdDisp = consultation.IdDisp
我可能建议您将查询重写为类似这样的内容,在表上使用JOIN语法,而不是WHERE
子句中的JOIN:
SELECT d.IdDisp,
COUNT(c.NumDossier)
FROM dispensaire d
INNER JOIN medecin m
ON d.IdDisp = m.IdDisp
INNER JOIN consultation c
ON m.IdDisp = c.IdDisp
WHERE c.Date BETWEEN (CURRENT_DATE( ) - INTERVAL 1 MONTH) AND CURRENT_DATE( ))
GROUP BY d.IdDisp
我去格式化这个查询,格式化程序爆炸了。@FreshPrinceOfSO那是因为有一个
和浮动在你周围,你得到的是一个错误还是结果不是预期的?where子句中的第二个和第二个似乎缺少一个=。也许您的意思是和medecin.idDisp=consultation.idDisp
在select子句和旧语法中嵌套查询……格式化程序无法理解这一点@Ziko-此查询需要相当多的时间才能运行。MYSQL使用这种语法的表现非常糟糕。选择行应为dispensaire.IdDisp,count(*)……子查询逻辑的其余部分应位于where语句中。(蓝脚怪击败我回答)非常感谢大家:)我去格式化这个查询,格式化程序爆炸了。@FreshPrinceOfSO那是因为有一个和浮动在你周围,你是得到了一个错误还是结果不是预期的?where子句中的第二个和第二个似乎缺少一个=。也许您的意思是和medecin.idDisp=consultation.idDisp
在select子句和旧语法中嵌套查询……格式化程序无法理解这一点@Ziko-此查询需要相当多的时间才能运行。MYSQL使用这种语法的表现非常糟糕。选择行应为dispensaire.IdDisp,count(*)……子查询逻辑的其余部分应位于where语句中。(蓝脚怪打了我一顿回答)非常感谢你们,伙计们:)非常感谢,兄弟D非常感谢你,兄弟!:D