高手请进,该问题不知该如何表达????

QuinsonYue 2006-11-17 12:56:49
问题如下:数据库ms-sql

周数(第几周) 课时
1 0
2 0
3 0
4 2
5 2
6 2
7 4
8 4
9 4
10 2
11 2
12 2
13 6
14 6
15 6
16 6
17 6
18 2

想得到如下结果:2(4-6周,10-12周,18周)
4(7-9周)
6(13-17周)

在sql里面或c#里面实现都可以。
...全文
190 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
caihong201 2006-11-18
  • 打赏
  • 举报
回复
最笨的方法:
"select disinct 课时 from 表 where 课时 != 0"
将结果存到string[] ls_1中
for(int i=0;i<ls_1.length;i++)
{
"select 周数 from 表 where 课时 = " + ls_1[i];
}
leaohong 2006-11-18
  • 打赏
  • 举报
回复
select 周数,课时 from table
group by 课时,周数
wch007 2006-11-18
  • 打赏
  • 举报
回复
也就是行与列的转换。
caihong201() 的方法可行```
QuinsonYue 2006-11-17
  • 打赏
  • 举报
回复
谢谢ariesy_zhk() ,你的数据我调试过,结果不对。
就是你那个意思:把相邻的周数按相等的课时归组,而且课时并不是定死的,也就是不一定是2,4,6.
leaohong 2006-11-17
  • 打赏
  • 举报
回复
不明白
ariesy_zhk 2006-11-17
  • 打赏
  • 举报
回复
不好意思啊,第一次在这发帖,不太会排格式
ariesy_zhk 2006-11-17
  • 打赏
  • 举报
回复
他的意思应该是数据库里面的数据是不定的吧,要把相邻的数据按相等的归组。
private void Group()
{
Hashtable ht = new Hashtable();
DataTable dt = new DataTable();
string week = dt.Rows[0][0].ToString();
string keshi = dt.Rows[0][1].ToString();
ht.Add(keshi,week);
bool startNewPeriod = true;
for(int i = 1;i< dt.Rows.Count;i++)
{
week = dt.Rows[i][0].ToString();
if (keshi == dt.Rows[i][1].ToString())
{
startNewPeriod = false;
}
else
{
startNewPeriod = true;
}
keshi = dt.Rows[i][1].ToString();
if (ht.Contains(keshi))
{
if (startNewPeriod == false)
{
string strValue = ht[keshi].ToString();
string[] split = strValue.Split(',');
string oldStr = split[split.Length-1];
string newStr = oldStr.Split('-')[0];
newStr = newStr + "-" + week;
strValue.Replace(oldStr,newStr);
ht.Remove(keshi);
ht.Add(keshi,strValue);

}
else
{
string strValue = ht[keshi].ToString();
strValue = strValue + "," + week + "-" + "week";
ht.Remove(keshi);
ht.Add(keshi,strValue);

}

}
else
{
string strValue = week + "-" + week;
ht.Add(keshi,strValue);
}

}
foreach(string key in ht.Keys)
{
string resultStr = key + ht[key].ToString();
Console.WriteLine(resultStr);
}

}
这样应该可以吧,没有验证,而且前提是你的数据库里面的是按周数顺序排列的。

zhuangwei_ 2006-11-17
  • 打赏
  • 举报
回复
select 周数 from 表 where 课时 = 2 or 课时 = 4 or 课时 = 6 group by 周数

不确定对不对。。

实在不会。。等高人救你吧。。
zhuangwei_ 2006-11-17
  • 打赏
  • 举报
回复
这样好像不符合你的意思哦。。 呵呵
zhuangwei_ 2006-11-17
  • 打赏
  • 举报
回复
select 周数
(select 周数 from 表 where 课时 = 4),
(select 周数 from 表 where 课时 = 4),
from 表 where 课时 = 2

我也是新手。。不知道对不对。。
ff167 2006-11-17
  • 打赏
  • 举报
回复
sql group by
内容概要:本研究聚焦于内置式永磁同步电机(IPMSM)在全速域范围内的最优电流轨迹规划与控制策略优化,提出了一种计及电压与电流双重约束的MTPA(最大转矩电流比)与弱磁控制融合方法。通过Simulink搭建仿真模型,系统分析了电机在不同转速区间下的运行特性,建立了精确的电机数学模型,并综合考虑了电压极限椭圆与电流极限圆的约束条件,实现了全速域内电流矢量的最优分配。研究设计了基于电压饱和判据的分区切换逻辑,确保MTPA控制与弱磁控制间的平滑过渡,解决了传统控制模式在高速区易出现的失稳与效率下降问题,最终在仿真平台上验证了所提控制策略在提升电机效率、扩大调速范围和增强动态响应方面的优越性; 适合人群:具备电机控制或电力电子领域基础知识的研究生、科研人员及电气工程相关专业的高年级本科生; 使用场景及目标:①研究IPMSM在全速域范围内的高效运行控制;②设计并仿真验证MTPA与弱磁控制的融合策略;③分析电压与电流双重约束对电机性能的影响; 阅读建议:此资源以Simulink仿真实现为核心,建议读者在学习过程中结合电机学、电力电子及自动控制理论,深入理解控制算法的设计逻辑,并动手复现仿真模型,通过调整参数观察系统响应,以加深对理论知识与工程实践结合的理解。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧