课表报表一个条件筛选时间段,可参考
2015-01-28 11:43
232 查看
--正式课表查询
ALTER proc confirm_schedule_report(@bdate datetime,@edate datetime,@week varchar(10),@student varchar(100),@key varchar(50))
AS
SET NOCOUNT ON
BEGIN
IF(@week='上周' AND @bdate='' AND @edate='')
BEGIN
SET @bdate=(SELECT DATEADD(wk, DATEDIFF(wk,6,getdate()), 0))
SET @edate=(SELECT DATEADD(wk, DATEDIFF(wk,6,getdate()), 6))
END
IF(@week='本周' AND @bdate='' AND @edate='')
BEGIN
SET @bdate=(SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0))
SET @edate=(SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 6))
END
IF(@week='下周' AND @bdate='' AND @edate='')
BEGIN
SET @bdate=(SELECT DATEADD(wk, DATEDIFF(wk,-6,getdate()), 0))
SET @edate=(SELECT DATEADD(wk, DATEDIFF(wk,-6,getdate()), 6))
END
SELECT CONVERT(VARCHAR(10),date,120) 日期,student 学生,MAX(aa) 第一节,MAX(bb) 第二节,MAX(cc) 第三节,MAX(dd) 第四节 FROM
(select distinct date,student,
case ClassHour when '1' then '['+course+','+coursetype+','+CASE [type] WHEN 0 THEN '主课' WHEN 1 THEN '辅课' ELSE '' END+','+teacher+'],' end 'aa',
case ClassHour when '2' then '['+course+','+coursetype+','+CASE [type] WHEN 0 THEN '主课' WHEN 1 THEN '辅课' ELSE '' END+','+teacher+'],' end 'bb',
case ClassHour when '3' then '['+course+','+coursetype+','+CASE [type] WHEN 0 THEN '主课' WHEN 1 THEN '辅课' ELSE '' END+','+teacher+'],' end 'cc',
case ClassHour when '4' then '['+course+','+coursetype+','+CASE [type] WHEN 0 THEN '主课' WHEN 1 THEN '辅课' ELSE '' END+','+teacher+'],' end 'dd'
from Schedule) a
WHERE ((ISNULL(@bdate,'')='' AND ISNULL(@edate,'')='' )OR (date BETWEEN @bdate AND @edate))
AND (ISNULL(@student,'')='' OR student LIKE '%'+@student+'%' )
AND (ISNULL(@key,'')='' OR aa LIKE '%'+@key+'%' OR bb LIKE '%'+@key+'%' OR cc LIKE '%'+@key+'%' OR dd LIKE '%'+@key+'%' )
GROUP BY date,student
ORDER BY student asc,date asc
END
ALTER proc confirm_schedule_report(@bdate datetime,@edate datetime,@week varchar(10),@student varchar(100),@key varchar(50))
AS
SET NOCOUNT ON
BEGIN
IF(@week='上周' AND @bdate='' AND @edate='')
BEGIN
SET @bdate=(SELECT DATEADD(wk, DATEDIFF(wk,6,getdate()), 0))
SET @edate=(SELECT DATEADD(wk, DATEDIFF(wk,6,getdate()), 6))
END
IF(@week='本周' AND @bdate='' AND @edate='')
BEGIN
SET @bdate=(SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0))
SET @edate=(SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 6))
END
IF(@week='下周' AND @bdate='' AND @edate='')
BEGIN
SET @bdate=(SELECT DATEADD(wk, DATEDIFF(wk,-6,getdate()), 0))
SET @edate=(SELECT DATEADD(wk, DATEDIFF(wk,-6,getdate()), 6))
END
SELECT CONVERT(VARCHAR(10),date,120) 日期,student 学生,MAX(aa) 第一节,MAX(bb) 第二节,MAX(cc) 第三节,MAX(dd) 第四节 FROM
(select distinct date,student,
case ClassHour when '1' then '['+course+','+coursetype+','+CASE [type] WHEN 0 THEN '主课' WHEN 1 THEN '辅课' ELSE '' END+','+teacher+'],' end 'aa',
case ClassHour when '2' then '['+course+','+coursetype+','+CASE [type] WHEN 0 THEN '主课' WHEN 1 THEN '辅课' ELSE '' END+','+teacher+'],' end 'bb',
case ClassHour when '3' then '['+course+','+coursetype+','+CASE [type] WHEN 0 THEN '主课' WHEN 1 THEN '辅课' ELSE '' END+','+teacher+'],' end 'cc',
case ClassHour when '4' then '['+course+','+coursetype+','+CASE [type] WHEN 0 THEN '主课' WHEN 1 THEN '辅课' ELSE '' END+','+teacher+'],' end 'dd'
from Schedule) a
WHERE ((ISNULL(@bdate,'')='' AND ISNULL(@edate,'')='' )OR (date BETWEEN @bdate AND @edate))
AND (ISNULL(@student,'')='' OR student LIKE '%'+@student+'%' )
AND (ISNULL(@key,'')='' OR aa LIKE '%'+@key+'%' OR bb LIKE '%'+@key+'%' OR cc LIKE '%'+@key+'%' OR dd LIKE '%'+@key+'%' )
GROUP BY date,student
ORDER BY student asc,date asc
END
相关文章推荐
- Tableau--使用参数为报表增加一个统计周期筛选条件(日,周,月,季度,年)
- 子报表复合条件筛选 兼答rockyvan
- 子报表复合条件筛选 【转】
- 在水晶报表中写一个条件判断语句
- 如何在sql server表中的datetime属性列中筛选一个时间段内的记录
- SQL拼接一个满足条件筛选后的字段到一个虚拟字段中
- 使用报表模型设计报表时,如何正确设置筛选条件?
- 思达报表工具Style Report基础教程—创建一个带条件的查询
- 利用已存在的数组,经过条件筛选后,再将筛选剩下的元素组成一个数组
- Lightning 报表筛选条件中的锁定与URL传参
- 子报表复合条件筛选 兼答rockyvan
- 一个类似京东商城那种多条件筛选效果
- 网格部件中,根据某一个列的条件设置整行是否可编辑的参考示例
- 一个实用的多条件筛选菜单,在很多App上都能看到这个效果,如美团,爱奇艺电影票等.
- 用了接近一天的程序看懂了堆排序,堆排序的“筛选”的前提条件是一个大(小)顶堆,只有堆顶的元素不是有序的。这样从堆顶开始的排序才是筛选。而堆排序就是反复筛选的程序。
- Android高阶UI之一个实用的多条件筛选菜单
- 子报表复合条件筛选 兼答rockyvan
- 使用报表模型设计报表时,如何正确设置筛选条件?
- 一个搜索和展示热词和历史内容等筛选条件的类
- 思达报表工具Style Report基础教程—创建一个带条件的查询