mysql - 分配每个月Mysql中的所有行

标签 mysql

你好我是mysql新手

Address        Type    MonthCreated       YearCreated
AddA1           M1     August                 2018
AddA1           I2     August                 2018
AddA1           K2     October                2018

期望的输出 就像这三行将在每个月分配,例如 1 月 2 月 3 月到 2018 年 12 月

Select  AddA1,Type,MonthCreated,YearCreated 
from tbltry 
where YearCreated = '2018'

期望输出是每个月的所有行,因为它仍在同一年我只是想知道是否真的需要帮助或建议

Address        Type    MonthCreated       YearCreated
AddA1           M1     January                2018
AddA1           I2     January                2018
AddA1           K2     January                2018
AddA1           M1     February               2018
AddA1           I2     February               2018
AddA1           K2     February               2018
AddA1           M1     March                  2018
AddA1           I2     March                  2018
AddA1           K2     March                  2018

直到 12 月,它会返回所有行,这可能吗?真的需要建议

最佳答案

  • Derived Table ,您可以为所有月份创建一个“主表”。
  • 在另一个 Derived 表中,您可以获得 2018 年的 AddA1Type 的不同组合。
  • 简单地在它们之间做一个CROSS JOIN以获得所有可能的月份。

尝试:

SELECT dttry.*, all_months.*
FROM 
(SELECT DISTINCT AddA1, Type, YearCreated
 FROM tbltry 
 WHERE YearCreated = '2018') AS dttry
CROSS JOIN 
(SELECT 'January' AS MonthCreated UNION ALL
 SELECT 'February' UNION ALL 
 SELECT 'March' UNION ALL
 SELECT 'April' UNION ALL
 SELECT 'May' UNION ALL
 SELECT 'June' UNION ALL
 SELECT 'July' UNION ALL
 SELECT 'August' UNION ALL
 SELECT 'September' UNION ALL
 SELECT 'October' UNION ALL
 SELECT 'November' UNION ALL
 SELECT 'December') AS all_months 

关于mysql - 分配每个月Mysql中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53358466/

相关文章:

PHP : Retrieve multiple data from mysql, 更简单的方法?

PHP MySQL Yii - 数据库读取不写入

MySql滚动总和问题

mysql - 根据给定的词群,根据 OCR 错误自动构建可能词的输出列表

php - SQL SELECT 到多个表

mysql - 如果 MySQL 表中不存在,则添加一行

mysql查询在多个条件下运行缓慢

java - 如何将数据从jsp发送到servlet,同时保持发送的参数隐藏?

跨日期范围的 MySQL 求和值

php - 无法使用日期函数获得结果