很郁闷的问题,而且太难解决了!大家都来看看

时间:2021-12-28 18:38:38
我现在做的是一份汇总表,行是项目名称,每一列都是需要不同的SQL语句来统计值,那么现在的问题就是没法用DATAGRID,因为我没法直接给DATAGRID赋数据源,所以我现在是用TABLE,在后台动态的生成,但是还是得给每个单元格写SQL语句,写下来几百个单元格,就得几百条SQL语句,功能是能实现,但是总是感觉这样不妥,不知道大家做统计表的时候是怎么做的,表是怎么生成的,有什么好办法尽管说,能实现就给分!

7 个解决方案

#1


优化sql语句了。并且这样的题目也不好答。

#2


理论上讲,你要的数据是一份汇总表,不论你汇总的方式有多复杂,最终出来的结果是一份表格
而且数据也应该在同一个数据库里面
那么总有办法用一个sql文,查询出一个DataTable,绑定给一个DataGrid的

#3


我是这样做的,我用SQL的union实现了所有的数据处理,取到一个完整的数据Table
for(int i=0;i<salesTable.Rows.Count;i++)
{
strText += 
"<tr align='center'>"
+"<td align='left' style='BORDER-RIGHT: #708090 1px solid; BORDER-LEFT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["rowNum"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["PAMon1"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["AAMon1"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPercent1+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["PAMon2"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["AAMon2"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPercent2+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["PAMon3"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["AAMon3"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPercent3+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPlanTatal+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strFactTatal+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPercent4+ "</td>"
+"</tr>";
}

使用这种方法来在后台生成table,用于控制页面,
前台用<#%= strText %>来接收

#4


这样下来我的SQL文居然有800行,查询的表也居然大于了256个,没有办法只好把SQL又分成了两个部分,又用了DataSet的merge.结果才可以,这样的统计分析也没有办法用别的办法去做.

#5


要查询的表也太多了吧,能不能将汇总表分一分类呢?

#6


happer6012,我用的方法是和你差不多的,问提就是SQL语句太多,能不能有什么好的高效的解决方法呢?
而且我的数据不是来自一个数据库!楼上分类的方法是不行的,因为表的格式是固定的.

#7


不是来自一个数据库,那再要汇总,就麻烦点了吧,你试试用存储过程呢!
我现在这里也没有什么好的解决办法,那个页面也是有点面!还不知道到时候压力测试是否能通过呢!

#1


优化sql语句了。并且这样的题目也不好答。

#2


理论上讲,你要的数据是一份汇总表,不论你汇总的方式有多复杂,最终出来的结果是一份表格
而且数据也应该在同一个数据库里面
那么总有办法用一个sql文,查询出一个DataTable,绑定给一个DataGrid的

#3


我是这样做的,我用SQL的union实现了所有的数据处理,取到一个完整的数据Table
for(int i=0;i<salesTable.Rows.Count;i++)
{
strText += 
"<tr align='center'>"
+"<td align='left' style='BORDER-RIGHT: #708090 1px solid; BORDER-LEFT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["rowNum"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["PAMon1"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["AAMon1"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPercent1+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["PAMon2"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["AAMon2"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPercent2+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["PAMon3"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +salesTable.Rows[i]["AAMon3"].ToString()+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPercent3+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPlanTatal+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strFactTatal+ "</td>"
+"<td style='BORDER-RIGHT: #708090 1px solid; BORDER-BOTTOM: #708090 1px solid'>" +strPercent4+ "</td>"
+"</tr>";
}

使用这种方法来在后台生成table,用于控制页面,
前台用<#%= strText %>来接收

#4


这样下来我的SQL文居然有800行,查询的表也居然大于了256个,没有办法只好把SQL又分成了两个部分,又用了DataSet的merge.结果才可以,这样的统计分析也没有办法用别的办法去做.

#5


要查询的表也太多了吧,能不能将汇总表分一分类呢?

#6


happer6012,我用的方法是和你差不多的,问提就是SQL语句太多,能不能有什么好的高效的解决方法呢?
而且我的数据不是来自一个数据库!楼上分类的方法是不行的,因为表的格式是固定的.

#7


不是来自一个数据库,那再要汇总,就麻烦点了吧,你试试用存储过程呢!
我现在这里也没有什么好的解决办法,那个页面也是有点面!还不知道到时候压力测试是否能通过呢!