0

我正在开发一个网站,其中包含一个连接到数据库的空缺日历。我设法创建了一个表格,列出了从 2012 年 10 月 1 日到 2030 年的每一天,其中包含以下字段:

MyTable
-----------                 
 -dt date                       
 -mid smallint (ID for each month)  
 -y smallint (year)         
 -m tinyint (month)         
 -d tinyint (day)                   
 -dw tinyint (day of week)          
 -monthName varchar             
 -isVacant binary   
 -isWeekday  binary

我想在网站上显示这些数据,连续显示每个月(中),显示每一天以及它们是空的还是被占用的。我需要基本上将数据从行转换为列。

我一直在寻找一个查询来做到这一点,但到目前为止没有任何效果。我试图重写数据透视查询的示例,但我似乎没有得到正确的语法。谁能帮我解决这个问题?

这是东西的样子: mysql calendar table - html table

4

2 回答 2

0

我不确定,但我认为这是你想要得到的。如果您提供表格数据和结果示例,可能会更好:

select m, (case d when 1 then isVacant),  (case d when 2 then isVacant), 
 (case d when 3 then isVacant), ..... 
from MyTable
group by m
order by m

编辑: 看看sqlfiddle 请注意,我将 isVacant 列创建为整数类型字段。

于 2012-10-17T18:53:48.977 回答
0

为什么要在 mysql 查询中将数据放入单行?我只需将数据拉入 php,每天一行,然后使用 php 来安排我想要的数据。可能有一个 mysql 解决方案,但我认为这不值得。只需遍历这些日子,随时填充您的数组。

于 2012-10-17T18:23:07.237 回答