数据表
ID, Project, YearMonth, WeekOrMonth
1 A 201306 第一周
2 A 201306 第二周
3 B 201306 第一周查询结果
ID, Project, YearMonth, 第一周, 第二周, 第三周, 第四周, 月报
1 A 201306 以报 以报 未报 未报 未报
3 B 201306 以报 未报 未报 未报 未报就是要显示一个月报表内容,请问这条SQL语句怎么写?
ID, Project, YearMonth, WeekOrMonth
1 A 201306 第一周
2 A 201306 第二周
3 B 201306 第一周查询结果
ID, Project, YearMonth, 第一周, 第二周, 第三周, 第四周, 月报
1 A 201306 以报 以报 未报 未报 未报
3 B 201306 以报 未报 未报 未报 未报就是要显示一个月报表内容,请问这条SQL语句怎么写?
IF(SUM(IF(WeekOrMonth='第一周',bz1,0))=1,'y','n'),
IF(SUM(IF(WeekOrMonth='第二周',bz1,0))=1,'y','n'),
IF(SUM(IF(WeekOrMonth='第三周',bz1,0))=1,'y','n'),
IF(SUM(IF(WeekOrMonth='第四周',bz1,0))=1,'y','n'),IF(SUM(IF(WeekOrMonth='月报',bz1,0))=1,'y','n')
FROM (
SELECT Project,YearMonth,WeekOrMonth,1 AS bz1 FROM ttl2
UNION ALL
SELECT Project,'201306' AS rq,bz,0 AS bz1 FROM (SELECT DISTINCT a.`Project` FROM ttl2 a) a2,(
SELECT '第一周' AS bz
UNION
SELECT '第二周'
UNION
SELECT '第三周'
UNION
SELECT '第四周'
UNION
SELECT '月报'
) a1) a2
GROUP BY Project, YearMonth
+---------+-----------+-----------+-----------+-----------+-----------+
| project | yearmonth | 第一周 | 第二周 | 第三周 | 第四周 |
+---------+-----------+-----------+-----------+-----------+-----------+
| A | 201306 | 以报 | 以报 | 未报 | 未报 |
| B | 201306 | 以报 | 未报 | 未报 | 未报 |
+---------+-----------+-----------+-----------+-----------+-----------+
2 rows in set (0.00 sec)
MySQL交叉表
在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx( id int primary key, c1 c...