这是我从数据库中根据一定条件查询出的结果。collectdata typename collecttime120.00 收缩压上 2012/5/11 13:19:4590.00 舒张压下 2012/5/11 13:19:4634.00 血糖餐前 2012/5/11 13:19:4736.00 血糖餐后 2012/5/11 13:19:4837.50 体温 2012/5/11 13:19:49150.00 心率 2012/5/11 13:19:50180.00 收缩压上 2012/5/11 16:30:31110.00 舒张压下 2012/5/11 16:30:3233.00 血糖餐前 2012/5/11 16:30:3338.00 血糖餐后 2012/5/11 16:30:3439.00 体温 2012/5/11 16:30:35190.00 心率 2012/5/11 16:30:36最后想要的结果如下:120.00 90.00 34.00 36.00 37.50 150.00 13:19180.00 110.00 33.00 38.00 39.00 190.00 16:30求各位帮下忙了,先谢谢了。要求是不能在数据库中做对sql语句进行处理。
6 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
用下面的代码能实现:
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 typename
1 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 150
2 180 110 33 38 39 190
慕姐8265434
TA贡献1813条经验 获得超2个赞
你生成dataset,然後,包含一個中間的列名。裏面放的數據是collecttime.subing(0,collecttime.length-2)的數據
然後用這個中間列進行分組,然後輸出分組內容。
aluckdog
TA贡献1847条经验 获得超7个赞
@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; }
- 6 回答
- 0 关注
- 431 浏览
添加回答
举报
0/150
提交
取消