table A type city result A SH 10
A BJ 15
B BJ 20
B SH 15
B TJ 12
期望结果 Type SH BJ TJ A 10 15
B 15 20 12Sql或DataTable 都行,能解决就行
A BJ 15
B BJ 20
B SH 15
B TJ 12
期望结果 Type SH BJ TJ A 10 15
B 15 20 12Sql或DataTable 都行,能解决就行
解决方案 »
- asp.net 弹出窗口后点击确定按钮后跳转到一个页面
- (200)xaml(一段代码) 转成 c#
- 数据库访问层如何优化实现高并发??
- 弹出窗体刷新父页面的问题???
- 程序做好,用vs2008发布工具发布后,在目标bin目录下,还是有很多pdb文件存在,这些可否删除掉?如何得知现在的bll是release版的?
- 请问这样的sql语句应该怎么样写
- 二级域名原理以及程序,申请即可开通
- ASP.NET中文本框问题
- 谁由OWC11的帮助啊??
- 关于父页和子页的一个小问题
- 为什么第二次打开模式窗口,它不能触发private void Page_Load(object sender, System.EventArgs e)事件呢?
- 两表更新SQL语句求解!!!
select @sql = @sql + ',SUM(case city when ''' + AA.city +''' then result else 0 end) as ' + city from (select distinct city from a) as AA
set @sql = @sql + ' from a group by type '
--print @sqlexec(@sql)
DataRow[] rows;
DataRow newRow; // 以下三行为伪代码
dtColumns = "select distinct city from tb";
dtTypes = "select distinct Type from tb";
dtAll = "select * from tb"; foreach (DataRow dr in dtColumns.Rows)
{
dtData.Columns.Add(dr["Name"].ToString(),"".GetType());
} foreach (DataRow dr in dtTypes.Rows)
{
newRow = dtData.NewRow(); foreach (DataRow dr2 in dtColumns.Rows)
{
rows = dtAll.Select("Type='" + dr["Type"] + "' and city='" + dr2["city"].ToString() + "'");
if (rows.Length > 0)
{
newRow[dr2["city"]] = rows[0]["result"];
}
}
dtData.Rows.Add(newRow);
}
还是贴上多个思路吧,嘿嘿
===================================
Dim dtb As New DataTable
Dim dcol As New DataColumn("type")
dtb.Columns.Add(dcol)
dcol = New DataColumn("city")
dtb.Columns.Add(dcol)
dcol = New DataColumn("result")
dtb.Columns.Add(dcol) Dim drow As DataRow
drow = dtb.NewRow
drow("type") = "A"
drow("city") = "SH"
drow("result") = 10
dtb.Rows.Add(drow) drow = dtb.NewRow
drow("type") = "A"
drow("city") = "BJ"
drow("result") = 15
dtb.Rows.Add(drow) drow = dtb.NewRow
drow("type") = "B"
drow("city") = "BJ"
drow("result") = 20
dtb.Rows.Add(drow) drow = dtb.NewRow
drow("type") = "B"
drow("city") = "SH"
drow("result") = 15
dtb.Rows.Add(drow) drow = dtb.NewRow
drow("type") = "B"
drow("city") = "TJ"
drow("result") = 12
dtb.Rows.Add(drow) DataGrid1.DataSource = dtb
DataGrid1.DataBind() '==========开始转换========== '如果城市还有很多,可从数据库中取,循环动态生成DataColumn Dim dtbnew As New DataTable
dcol = New DataColumn("type")
dtbnew.Columns.Add(dcol)
dcol = New DataColumn("SH")
dtbnew.Columns.Add(dcol)
dcol = New DataColumn("BJ")
dtbnew.Columns.Add(dcol)
dcol = New DataColumn("TJ")
dtbnew.Columns.Add(dcol)
'如果不止A,B两种类型,可以取得所有类型,然后循环解决
Dim drows() As DataRow = dtb.Select("type='A'")
drow = dtbnew.NewRow
drow("type") = "A"
For Each d As DataRow In drows
drow.Item(d("city")) = d("result")
Next
dtbnew.Rows.Add(drow)
drows = dtb.Select("type='B'")
drow = dtbnew.NewRow
drow("type") = "B"
For Each d As DataRow In drows
drow.Item(d("city")) = d("result")
Next
dtbnew.Rows.Add(drow) DataGrid2.DataSource = dtbnew
DataGrid2.DataBind()