DataTable中统计列中不同行问题

DataTable没有SQL功能强大,当遇到distinct使用时,还需要重写类,在
还是使用了SQL语句:
select count(expr1) as expr1
from (select distinct 列名 as expr1  from 表 )
derivedtbl
如:3个表联合查询中统计一个列中不同行的个数
3个student表与card表,还有DownloadData表,之间关系为
student.id=card.studentid ,card.cardno=DownloadData.cardno
联合查询还有个时间段的判断
student.classid是班级编号.
SELECT COUNT(studentname) AS Expr1
FROM (SELECT DISTINCT
CONVERT(varchar(12), recordtime, 111) AS [Time], studentname
FROM (SELECT student.studentname, recordtime
FROM Student INNER JOIN
Card ON Student.ID = Card.StudentID INNER JOIN
DownloadData ON
Card.CardNo = DownloadData.CardNo
WHERE (Student.ClassID = '6') AND
DownloadData.RecordTime > '2005 - 12 - 1 00 : 00 : 00 ') AND
(DownloadData.RecordTime < '2005 - 12 - 30 23 : 00 : 00')) 
DERIVEDTBL) DERIVEDTBL
其中有段代码有注意
CONVERT(varchar(12), recordtime, 111) AS [Time], studentname

convert函数,它可以将一种数据类型的表达式转换为另一种数据类型的表达式.此处我们先将数据库内的datetime类型转换为char类型,这样在查询时数据库得到参数后先自动将数据库内的信息转换为yyyy-mm-dd格式,也就是取年月日,这样就可以取一个时间段内,一个班级的刷卡总人数了
好久没写BLOG,临时写个刚刚想的,不登大雅啊.:(

转载于:https://www.cnblogs.com/zjy/archive/2007/07/15/818499.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值