新手问题汇总一个月31天的表格

问题描述

我们每天提交记录,然后到月底将所有记录汇总起来,格式如下请问用什么好方法可以做出来呢?

解决方案

解决方案二:
tablegridview很多都可
解决方案三:
放到数据库中
解决方案四:
懂的朋友,请大家说明白一点.加分哦
解决方案五:
楼主还应该加上,如果某天某项没有数据则补0...或为空。一条sql语句就出来了。
解决方案六:
再顶一下吧
解决方案七:
我也顶一个`
解决方案八:
gridview绑定在一个ds上,ds来源于一个sql语句。sql中如果某天某项没有数据则补0...或为空
解决方案九:
再顶一个,求一个详细介绍
解决方案十:
楼主是不是考虑到数据列不固定,也就是每个月的天数不固定,有30天的,有31天的,还有28(29)天的。如果是这样,可以考虑先把所需数据(单项值、合计值)取出来组一DataTable,确定列数后再绑到DataList或GridView上。
解决方案十一:
这是个交叉表应用,就是把数据行上的日期竖起来可以用SQL交叉表来做可以参考http://topic.csdn.net/u/20080121/23/883c844b-eeb7-4b48-97cb-29ff0a257902.html也可以用RDLC或水晶报表的交叉表来做
解决方案十二:
楼主的问题并不是一个简单问题,要考虑的东西是比较多的,1.一个月的天数是不固定的;2.要考虑2月份有29天的,既要有闰月的判断;3.某天某项没有数据则补0...或为空;
解决方案十三:
注意看有个动态SQL普通行列转换问题:假设有张学生成绩表(tb)如下:姓名课程分数张三语文74张三数学83张三物理93李四语文74李四数学84李四物理94想变成(得到如下结果):姓名语文数学物理----------------李四748494张三748393-------------------*/createtabletb(姓名varchar(10),课程varchar(10),分数int)insertintotbvalues('张三','语文',74)insertintotbvalues('张三','数学',83)insertintotbvalues('张三','物理',93)insertintotbvalues('李四','语文',74)insertintotbvalues('李四','数学',84)insertintotbvalues('李四','物理',94)go--SQLSERVER2000静态SQL,指课程只有语文、数学、物理这三门课程。(以下同)select姓名as姓名,max(case课程when'语文'then分数else0end)语文,max(case课程when'数学'then分数else0end)数学,max(case课程when'物理'then分数else0end)物理fromtbgroupby姓名--SQLSERVER2000动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)declare@sqlvarchar(8000)set@sql='select姓名'select@sql=@sql+',max(case课程when'''+课程+'''then分数else0end)['+课程+']'from(selectdistinct课程fromtb)asaset@sql=@sql+'fromtbgroupby姓名'exec(@sql)--SQLSERVER2005静态SQL。select*from(select*fromtb)apivot(max(分数)for课程in(语文,数学,物理))b--SQLSERVER2005动态SQL。declare@sqlvarchar(8000)select@sql=isnull(@sql+',','')+课程fromtbgroupby课程exec('select*from(select*fromtb)apivot(max(分数)for课程in('+@sql+'))b')---------------------------------/*问题:在上述结果的基础上加平均分,总分,得到如下结果:姓名语文数学物理平均分总分--------------------------李四74849484.00252张三74839383.33250*/--SQLSERVER2000静态SQL。select姓名姓名,max(case课程when'语文'then分数else0end)语文,max(case课程when'数学'then分数else0end)数学,max(case课程when'物理'then分数else0end)物理,cast(avg(分数*1.0)asdecimal(18,2))平均分,sum(分数)总分fromtbgroupby姓名--SQLSERVER2000动态SQL。declare@sqlvarchar(8000)set@sql='select姓名'select@sql=@sql+',max(case课程when'''+课程+'''then分数else0end)['+课程+']'from(selectdistinct课程fromtb)asaset@sql=@sql+',cast(avg(分数*1.0)asdecimal(18,2))平均分,sum(分数)总分fromtbgroupby姓名'exec(@sql)--SQLSERVER2005静态SQL。selectm.*,n.平均分,n.总分from(select*from(select*fromtb)apivot(max(分数)for课程in(语文,数学,物理))b)m,(select姓名,cast(avg(分数*1.0)asdecimal(18,2))平均分,sum(分数)总分fromtbgroupby姓名)nwherem.姓名=n.姓名--SQLSERVER2005动态SQL。declare@sqlvarchar(8000)select@sql=isnull(@sql+',','')+课程fromtbgroupby课程exec('selectm.*,n.平均分,n.总分from(select*from(select*fromtb)apivot(max(分数)for课程in('+@sql+'))b)m,(select姓名,cast(avg(分数*1.0)asdecimal(18,2))平均分,sum(分数)总分fromtbgroupby姓名)nwherem.姓名=n.姓名')droptabletb------------------------------------/*问题:如果上述两表互相换一下:即表结构和数据为:姓名语文数学物理张三74  83  93李四74  84  94想变成(得到如下结果):姓名课程分数------------李四语文74李四数学84李四物理94张三语文74张三数学83张三物理93--------------*/createtabletb(姓名varchar(10),语文int,数学int,物理int)insertintotbvalues('张三',74,83,93)insertintotbvalues('李四',74,84,94)go--SQLSERVER2000静态SQL。select*from(select姓名,课程='语文',分数=语文fromtbunionallselect姓名,课程='数学',分数=数学fromtbunionallselect姓名,课程='物理',分数=物理fromtb)torderby姓名,case课程when'语文'then1when'数学'then2when'物理'then3end--SQLSERVER2000动态SQL。--调用系统表动态生态。declare@sqlvarchar(8000)select@sql=isnull(@sql+'unionall','')+'select姓名,[课程]='+quotename(Name,'''')+',[分数]='+quotename(Name)+'fromtb'fromsyscolumnswherename!=N'姓名'andID=object_id('tb')--表名tb,不包含列名为姓名的其它列orderbycolidascexec(@sql+'orderby姓名')--SQLSERVER2005动态SQL。select姓名,课程,分数fromtbunpivot(分数for课程in([语文],[数学],[物理]))t--SQLSERVER2005动态SQL,同SQLSERVER2000动态SQL。--------------------/*问题:在上述的结果上加个平均分,总分,得到如下结果:姓名课程分数----------------李四语文74.00李四数学84.00李四物理94.00李四平均分84.00李四总分252.00张三语文74.00张三数学83.00张三物理93.00张三平均分83.33张三总分250.00------------------*/select*from(select姓名as姓名,课程='语文',分数=语文fromtbunionallselect姓名as姓名,课程='数学',分数=数学fromtbunionallselect姓名as姓名,课程='物理',分数=物理fromtbunionallselect姓名as姓名,课程='平均分',分数=cast((语文+数学+物理)*1.0/3asdecimal(18,2))fromtbunionallselect姓名as姓名,课程='总分',分数=语文+数学+物理fromtb)torderby姓名,case课程when'语文'then1when'数学'then2when'物理'then3when'平均分'then4when'总分'then5enddroptabletb一道sql的题目:原表结构如下学号姓名性别年龄2061403张三男212061404李四男222061405王五男212061406陈六男23修改后的结构为:学号2061403206140420614052061406姓名张三李四王五陈六性别男男男男年龄21222123请问用sql语句怎么做啊?谢谢!Ifobject_id('ta')isnotnullDroptabletaGoCreatetableta(xhint,xmnvarchar(2),xbnvarchar(1),nlint)GoInsertintotaselect2061403,'张三','男',21unionallselect2061404,'李四','男',22unionallselect2061405,'王五','男',21unionallselect2061406,'陈六','男',23Go--Startselectid=identity(int,1,1),xhinto#fromtadeclare@svarchar(8000)declare@s1varchar(8000)declare@s2varchar(8000)declare@s3varchar(8000)select@s=isnull(@s+',','')+'[col'+ltrim(id)+']=max(casewhenxh='+ltrim(xh)+'thenltrim(xh)elsenullend)'from#set@s='select''学号''ascol0,'+@s+'fromtaunionall'select@s1=isnull(@s1+',','')+'[col'+ltrim(id)+']=max(casewhenxh='+ltrim(xh)+'thenxmelsenullend)'from#set@s1='select''姓名''ascol0,'+@s1+'fromtaunionall'select@s2=isnull(@s2+',','')+'[col'+ltrim(id)+']=max(casewhenxh='+ltrim(xh)+'thenxbelsenullend)'from#set@s2='select''性别''ascol0,'+@s2+'fromtaunionall'select@s3=isnull(@s3+',','')+'[col'+ltrim(id)+']=max(casewhenxh='+ltrim(xh)+'thenltrim(nl)elsenullend)'from#set@s3='select''年龄''ascol0,'+@s3+'fromta'exec(@s+@s1+@s2+@s3)droptable#--Result:/*col0col1col2col3col4----------------------------------------------------学号2061403206140420614052061406姓名张三李四王五陈六性别男男男男年龄21222123

解决方案十四:
11楼的想法多虑,其实可以理解为个视图,每月得张表就是了,每月有多少天,就做多少天你可能每天提交的时间是精确到秒的,分组的时候就DAY(DATETIME字段)

时间: 2024-10-02 20:47:54

新手问题汇总一个月31天的表格的相关文章

新手如何建立一个月赚万元的网站

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 做网站能够赚到钱,这个话题已经被证实,但是如何建造一个能够达到月赚万元的网站,这还是一个相对来说比较困难的,首先很多新手站长在建站的初期从来没有先考虑如何让网站盈利,而是盲目的着手制作网站,等网站起来了才会去考虑盈利,这种做法是不对的,且听我慢慢道来. 当新手站长在制作网站的时候,应该把盈利的方式融合进去,结合自己网站的类型来挑选广告类型,那

新手一个月打造3000IP站

好了,我这里就说一些我以前用的现在还很有效的利用统计报表里搜索来路的关键字利用吧.   很多新手基本上不会注意利用统计报表的关键字来路,他们关注的就是我那个那个关键字来了多少多少流量,占我的站的IP多少多少,其实很多懂做站的并不是关注这些的,他是关注来路关键字的趋势,是否相关,还有排位大概是多少,特别是占自己站来路比较大的一些关键字.然后就是围绕这些关键字做文章,文笔有效,不说这些了,说一下操作吧.    比如刚才看到一个qqgif.cn的站,他说他的QQ图片,QQ表情,QQ头像开始的时候都是排

谈谈作为新人建站一个月遇到的种种问题-新手必看

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 先简述一下我是如何成为千百万站长中一员的. 13年2月份过年回家的时候,我父亲在跟我谈我的工作的过程中,说到了一个我们村子里的人,他大概是在06,07年左右开始成为站长的.收益非常好,前几年,他每个月的收入大概在7万到9万之间.后来收到百度框计算的影响,收入少了接近一半.我父亲看见到他做网站收入这么高,所以让我去跟他学习.然后他给了我一个搜外

新手必看 接触SEO一个月的辛酸历程

中介交易 SEO诊断 淘宝客 云主机 技术大厅 接触admin5也有一段时间了,之前给我的第一感觉就是里面的知识量非常丰富,再到后来的每天都阅览几个小时,是因为站长网,我才下决心来写这篇文章.我是一个纯粹的SEO新手,到现在算算吧,进入这个行业还不到一个月了,之所以会选择做SEO,是因为这个行业有非常好的前景,我相信很多初初接触SEO的人而言,除了兴趣爱好外,也希望学有所成,有所回报. 一个月以来,对一个企业网站进行优化.效果不理想,排名上不去,关键词排名不稳定,我几乎遇到了SEO新手应该遇到的

一个新手一个月做到日赚百元的启示

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 昨晚周末,侄子过来找我.他一脸的兴奋,一见面就说:"今天我赚了超过一百块!" "呵呵,不错,继续努力,具体情况怎样的?"呵呵,两叔侄就热闹的聊开了. 事情要从大约一个月前说起. 侄子正在读大学,今年大四了,帮我做了1年多的助手了,我的几乎一半的网站都是一直让他帮忙维护的(呵呵,没办法,自己人才信得过,而

新手站长建站一个月后的真实体验

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 建站一个月之后,开始有了点感觉,现在[网址站真可谓是铺天盖地,随便找台能上网的电脑,看看他们的IE首页是什么,大部分被人改的面目全非,几乎都是不是自己意愿设置的,国内几个著名网址站的起家方式. 好123 网址站的老大,依靠早些年的口碑相传发展成中国最大的网址站,据说早期也用过插件推广,如今已经漂白了,但是现在却是最正规的网址站,但是样子多少年

初学者运营拍拍一个月的心得体会

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 电子商务的的时代已经如火如荼了,电子商务隐藏着巨大商机被越来越多的人所知道,但是很多新手卖家,开店之后并没有尝到电子商务带来的甜头,这类新手商家店铺冷冷清清,没有成交量,甚至很多商家都守株待兔,其实做为一个信用值较低的卖家,最大的烦恼就是店铺人流量太少了,人流量和成交量是正比例关系的,人流量少,自然的成交量也就少,如何突破这个瓶颈呢?下面就谈

SEO优化一个月关键词排名上前十所需的心理

对于很多新手朋友来说,当听到只优化一个月后关键词排名就全部上到前十,会觉得不可思议.然而,我想告诉大家这其实不难,不管是以前还是说现在.当然,我现在所说的操作并且实现效果是相对于以前来说,但是不可否认其中有几点对于现在也是一样有用. 前面我说过接触SEO和实践SEO的过程和会的几点操作方法.我想告诉你我就是通过这几点方法把网站关键词在一个月之内全部优化到前十.其实,现在想起来我觉得运气是占很大一部分的,因为那时候对于SEO完全是不懂状态,连入门级别都没有.一般来说,接手一个网站做优化都会大概知道

冒险挑战百度,一个月走出审核

前几天笔者写了一篇文章"百度更新一夜狂增10倍收录的秘密"在a5网站发表之后迅速被很多人转载评论,对于一些seo新人或者没有去认真分析笔者的郑州团博网的朋友可能真的感觉很神奇,其实不然,收录一夜增加10倍只是网站收录的恢复. 笔者之前是在一家电子公司做电话营销,今年4月份进入郑州团博网担任了seo主管,进公司之后我对网站进行了分析诊断,发现网站有俩二级域名都可以打开网站.为了避免内容重复我决定删除掉一个域名,对于这个问题我分析有两种可能:一是二级域名直接没有什么影响,原因是每一个二级域