问题描述
表1编号产品名1HPT2HPA3HCD4AC表二日期数量产品2015-1-210HPA2015-1-26HPT2015-1-37HCD2015-1-33HPT2015-1-320AC2015-1-35HPA2015-1-410HPA显示效果查询条件查一天日期从[2014-1-2]到[2014-1-2]得下表并显示日期HPAHPTHCDAC合计2014-1-21060016合计1060016查询条件查几天日期从[2014-1-2]到[2014-1-4]日期HPAACHPTHCD合计2014-1-210060162014-1-352037452014-1-41000010合计25209761用repeartergridview...用什么能实现显示成这个表
解决方案
解决方案二:
搜一搜:SQL行转列另,你表1根本没有任何存在的意义除非表2里不要直接存产品名,而是存编号
解决方案三:
select日期,max(case产品when'HPA'then数量else0end)HPA,max(case产品when'AC'then数量else0end)AC,max(case产品when'HPT'then数量else0end)HPT,max(case产品when'HCD'then数量else0end)HCD,sum(数量)合计from表2groupby日期
这里的HPT,HCD等等都是个例子,具体你得去遍历表1去循环,转换完之后在根据时间去查询你试试吧,一起坐等大神
解决方案四:
Sql上问题不大,难的是在前台页面显示读取时表头,名怎么动态呢根据数据查那个左右排序,那个在前那个排在后,都是动态的!第一列日期,没有问题,到了第二列,事先不知道第二列是那个产品,第三列,就不知怎么绑定了怎么用repeater,或gridview...这些控件来给它显出出来?
解决方案五:
要么你就先查询一下这个时间段都出现了哪些产品要么就不要管这个产品到底是否出现过,都给他显示出来
解决方案六:
就是在全部显示出来了,但是,就不知道表头要怎么来绑定,因常用的方法是表头都是写死的,所以那个好做,但这个是表头变动态呢了,第二列是那个产品都是动态呢。。
解决方案七:
表1编号产品名1HPT2HPA3HCD4AC。。。。表二日期数量产品2015-1-210HPA2015-1-26HPT2015-1-37HCD2015-1-33HPT2015-1-320AC2015-1-35HPA2015-1-410HPA。。。。显示效果查询条件查一天日期从[2014-1-2]到[2014-1-2]得下表并显示日期HPAHPTHCDAC合计2014-1-21060016合计1060016查询条件查几天日期从[2014-1-2]到[2014-1-4]日期HPAACHPTHCD。。。合计2014-1-210060。。。162014-1-352037。。。452014-1-410000。。。10合计252097。。。61重点在于用repeartergridview...用什么能实现显示成这个表表头动态!
解决方案八:
第一个方法:有个傻瓜的方法(不推荐,但容易实现)在aspx文件上写<%if(是一天的){%>日期HPAHPTHCDAC合计//用repearter去弄还是怎么弄你自己定了。<%}else{%>日期HPAACHPTHCD合计//用repearter去弄还是怎么弄你自己定了。<%}%>上面两个的repeater的ID都一样就好了,这样后台的repeater绑定都一样了第二个方法:后台直接判断是否一天,然后再输出整个table在前台例如.cs中publicstringShowTb(){if(是一天的){return"<table><tr><th>日期</th><th>HPA</th></tr></table>"//剩下的自己拼吧;}else{return"<table><tr><th>HPA</th><th>日期</th></tr></table>"//剩下的自己拼吧;}}然后前台调用这个方法。不过给我的话会用js去处理咯。。。上面的方法挺傻瓜了,希望能帮到你