【发布时间】:2021-11-08 17:40:34
【问题描述】:
MySQL select 语句有问题。
我有一张带有不同Department 和状态的表,每个部门有 4 个状态,但每个月并不总是每个状态,但我想在分析图中显示它有“0”。
我对 select 声明有疑问,它只显示现有状态(当然 :D )。
是否可以将所有 Departments 、 Statuses 和 amount of statuses 设置为 0 的临时表,然后通过其他选择的值对其进行更新?
选择语句并筛选它在完美情况下的外观,以及在糟糕情况下的外观:
SELECT utd.Departament,uts.statusDef as statusoforder,Count(uts.statusDef) as Ilosc_Statusow
FROM ur_tasks_details utd
INNER JOIN ur_tasks_status uts on utd.StatusOfOrder = uts.statusNR
WHERE month = 'Sierpien'
GROUP BY uts.statusDef,utd.Departament
完美的场景,现在糟糕的场景:
我尝试过“联合”声明,但我不知道是否有可能只为每个部门采用“最高价值”。
示例:
我也听说过 使用 CTE 表,但我真的不知道如何使用它。很想得到一些提示! 感谢您的帮助。
【问题讨论】:
-
使用外连接。
-
你能创建 db fiddle 吗?你的预期结果是什么? db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/20
-
请use text, not images/links, for text--including tables & ERDs。转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。在图片中包含图例/键和说明。
-
请在代码问题中给出minimal reproducible example--剪切&粘贴&运行代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和版本;明确的规范和解释。对于包含最少代码的错误,您可以给出的代码是您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于 SQL 包括 DDL 和表格初始化代码。当你得到一个你不期望的结果时,暂停你的总体目标,切到第一个具有意外结果的子表达式并说出你的期望和原因,并通过文档证明是合理的。 How to AskHelp center
标签: mysql sql join select datatable