在线等:数据行列转换问题[

这是我从数据库中根据一定条件查询出的结果。
collectdata typename collecttime
120.00 收缩压上 2012/5/11 13:19:45
90.00 舒张压下 2012/5/11 13:19:46
34.00 血糖餐前 2012/5/11 13:19:47
36.00 血糖餐后 2012/5/11 13:19:48
37.50 体温 2012/5/11 13:19:49
150.00 心率 2012/5/11 13:19:50
180.00 收缩压上 2012/5/11 16:30:31
110.00 舒张压下 2012/5/11 16:30:32
33.00 血糖餐前 2012/5/11 16:30:33
38.00 血糖餐后 2012/5/11 16:30:34
39.00 体温 2012/5/11 16:30:35
190.00 心率 2012/5/11 16:30:36

最后想要的结果如下:
120.00 90.00 34.00 36.00 37.50 150.00 13:19
180.00 110.00 33.00 38.00 39.00 190.00 16:30
求各位帮下忙了,先谢谢了。要求是不能在数据库中做对sql语句进行处理。
 
 
繁花如伊
浏览 432回答 6
6回答

婷婷同学_

用下面的代码能实现: SELECT TOP 1000 [id] ,max(case typename when '收缩压上' then collectdata else null end) as 收缩压上 ,max(case typename when '舒张压下' then collectdata else null end) as 舒张压下 ,max(case typename when '血糖餐前' then collectdata else null end) as 血糖餐前 ,max(case typename when '血糖餐后' then collectdata else null end) as 血糖餐后 ,max(case typename when '体温' then collectdata else null end) as 体温 ,max(case typename when '心率' then collectdata else null end) as 心率 FROM [sdlog].[dbo].[Table_1] group by id 这里,我增加了一个名为ID的字段,一行数据相同的ID,数据表的内容为:(没使用日期了,所以就没写) id collectdata typename1 120 收缩压上1 90 舒张压下1 34 血糖餐前1 36 血糖餐后1 38 体温1 150 心率2 180 收缩压上2 110 舒张压下2 33 血糖餐前2 38 血糖餐后2 39 体温2 190 心率   查询后的结果为:   id 收缩压上 舒张压下 血糖餐前 血糖餐后 体温 心率1 120 90 34 36 38 1502 180 110 33 38 39 190

猛跑小猪

要求是不能在数据库中做对sql语句进行处理????

收到一只叮咚

是的,从数据库中返回了一个DataSet。对这个进行处理

慕姐8265434

你生成dataset,然後,包含一個中間的列名。裏面放的數據是collecttime.subing(0,collecttime.length-2)的數據 然後用這個中間列進行分組,然後輸出分組內容。

慕妹3242003

不太会啊,能不能具体点呢。

aluckdog

@Servers:  private static DataSet GetInidsPoseq() { DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add("PO_SEQ"); dt.Columns.Add("CO_No"); dt.Columns.Add("PC_To_Plan_Unit"); dt.Columns.Add("Plant_Flag"); dt.Columns.Add("PC_To_Plan_Unit"); ds.Tables.Add(dt); return ds; } DataSet ds = GetInidsPoseq(); DataTable dt = ds.Tables[0];            for (int i = 0; i < dt.Rows.Count; i++)            {                dt.Rows[i]["PO_SEQ"] = dt.Rows[i]["CO_No"].ToString().Substring(0, dt.Rows[i]["CO_No"].ToString().Length - 2);            } var re = from t in dt.AsEnumerable() group t by t.Field<string>("PO_SEQ") into s select new { s.Key, }; foreach (var item in re) { var m1 = from m in dt.AsEnumerable() where m.Field<string>("PO_SEQ") == item.Key select m; }
打开App,查看更多内容
随时随地看视频慕课网APP