作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于含糊不清的标题表示歉意,但这更多的是征求意见,而不是寻找直接的答案。作为引用,我使用的是 SSMS 2014。
我正在使用一个不是我创建的数据库,并且我正在努力使用当前格式的数据。我在下表中包含了一个示例。
+-----+----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|DtID | ID | Mo1 | Mo2 | Tu1 | Tu2 | We1 | We2 | Th1 | Th2 | Fr1 | Fr2 |
+-----+----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 565 | 12 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 |
| 565 | 13 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| 565 | 14 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
| 565 | 15 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
| 572 | 12 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 572 | 13 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
| 572 | 14 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
| 572 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
+-----+----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
DtID 是一个星期的开始日期标识符,ID 是一个人的标识符,Mo1 代表星期一上午,Mo2 星期一下午,等等。1 表示参加该 session 的人。该表超过 60 万行。
我的问题发生在尝试查询特定日期范围之间的数据时,例如我想找到日期标识 566 和 575 之间的当前出勤标记总和。日期 566 指的是从 565 和 575 开始的星期二将指的是从 572 开始的一周的星期四。
我会更喜欢下面格式的表格(以第 1 行为例)。
+-----+----+------+---------+
|DtID | ID | AMPM | Present |
+-----+----+------+---------+
| 565 | 12 | 1 | 0 |
| 565 | 12 | 2 | 1 |
| 566 | 12 | 1 | 0 |
| 566 | 12 | 2 | 1 |
| 567 | 12 | 1 | 1 |
| 567 | 12 | 2 | 0 |
| 568 | 12 | 1 | 0 |
| 568 | 12 | 2 | 0 |
| 569 | 12 | 1 | 1 |
| 569 | 12 | 2 | 0 |
+-----+----+------+---------+
这可能吗?有没有一种有效的方法可以按原样查询数据?我对 SQL 还很陌生,到目前为止,我几乎所有的学习都来自于解释这个网站上的问题和答案。正如我所说,我真的不知道我在寻找什么的答案,所以这里用户的集体建议和智慧对我非常有用。
非常感谢。
最佳答案
我认为您不想泄露当天的信息
select DtID,ID,left(day,2) as day,right(day,1) as AMPM,Present
from t unpivot (Present for day in (Mo1,Mo2,Tu1,Tu2,We1,We2,Th1,Th2,Fr1,Fr2)) t
+------+----+-----+------+---------+
| DtID | ID | day | AMPM | Present |
+------+----+-----+------+---------+
| 565 | 12 | Mo | 1 | 0 |
+------+----+-----+------+---------+
| 565 | 12 | Mo | 2 | 1 |
+------+----+-----+------+---------+
| 565 | 12 | Tu | 1 | 0 |
+------+----+-----+------+---------+
| 565 | 12 | Tu | 2 | 1 |
+------+----+-----+------+---------+
| 565 | 12 | We | 1 | 1 |
+------+----+-----+------+---------+
| 565 | 12 | We | 2 | 0 |
+------+----+-----+------+---------+
| 565 | 12 | Th | 1 | 0 |
+------+----+-----+------+---------+
| 565 | 12 | Th | 2 | 0 |
+------+----+-----+------+---------+
| 565 | 12 | Fr | 1 | 1 |
+------+----+-----+------+---------+
| 565 | 12 | Fr | 2 | 0 |
+------+----+-----+------+---------+
| 565 | 13 | Mo | 1 | 0 |
+------+----+-----+------+---------+
| 565 | 13 | Mo | 2 | 0 |
+------+----+-----+------+---------+
| 565 | 13 | Tu | 1 | 1 |
+------+----+-----+------+---------+
| 565 | 13 | Tu | 2 | 1 |
+------+----+-----+------+---------+
| 565 | 13 | We | 1 | 1 |
+------+----+-----+------+---------+
| 565 | 13 | We | 2 | 1 |
+------+----+-----+------+---------+
| 565 | 13 | Th | 1 | 0 |
+------+----+-----+------+---------+
| 565 | 13 | Th | 2 | 0 |
+------+----+-----+------+---------+
| 565 | 13 | Fr | 1 | 0 |
+------+----+-----+------+---------+
| 565 | 13 | Fr | 2 | 0 |
+------+----+-----+------+---------+
关于sql - 查询笨拙存储的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40932247/
如果这是一个非常普遍的问题和/或我遗漏了一些非常明显的问题,我很抱歉。我的目标是让我的背景在整个屏幕上拉伸(stretch),同时仍然与页面的其余部分一起滚动。我现在的代码实现了这一点,但并非没有严重
我是一名优秀的程序员,十分优秀!