一个sql 的超难问题,请高手帮帮忙 ( 积分: 0 )

  • 主题发起人 主题发起人 huanxia
  • 开始时间 开始时间
H

huanxia

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在用DELPHI7和SQL Server 2000开发一个关于风速风向的应用程序,其中需要输出各风向频率的雷达图,各风向频率我是用adoquery统计查询得到的结果(结果集中有风向和风向频率两个字段),这个结果中各风向的顺序和数据库表中各风向出现的顺序(一段时间内对各风向的统计)有关,而雷达图在生成过程中只能按照结果集中的风向字段的顺序逆时针的排列各风向,这样,就不能保证雷达图按照我们常规的上北下南、左西右东的正确的表达方法输出。要实现这个问题就必须保证我们的查询结果中的各风向(从第一个记录到16条记录)按照一个固定的顺序排列。请问应该是用什么样的方法来实现呢?
没有分数请见谅!
 
我现在用DELPHI7和SQL Server 2000开发一个关于风速风向的应用程序,其中需要输出各风向频率的雷达图,各风向频率我是用adoquery统计查询得到的结果(结果集中有风向和风向频率两个字段),这个结果中各风向的顺序和数据库表中各风向出现的顺序(一段时间内对各风向的统计)有关,而雷达图在生成过程中只能按照结果集中的风向字段的顺序逆时针的排列各风向,这样,就不能保证雷达图按照我们常规的上北下南、左西右东的正确的表达方法输出。要实现这个问题就必须保证我们的查询结果中的各风向(从第一个记录到16条记录)按照一个固定的顺序排列。请问应该是用什么样的方法来实现呢?
没有分数请见谅!
 
是否可以这样?
”各风向(从第一个记录到16条记录)按照一个固定的顺序排列“,输入的时候,在数据表中用一个字段保存这个顺序
 
结果应该是这样的,问题是其结果只能查询数据表得到的,不同时间段的查询结果就不一样,而雷达图要求将这些查询结果重新调整为正确的序列。
 
关键是我不是要求按照某字段的升序或降序排列,而是按照风向字段的值得某个序列来排序的。例如:我按普通查询得到的结果是:
风向 风向频率
S 20
N 12
E 38
W 30
而我输出正确的雷达图需要得到的只能是如下结果:
风向 风向频率
N 12
W 30
S 20
E 38
请问我应该如何来实现这个问题?
 
你可以把查询的结果保存到一个临时表中,在临时表中的顺序为NWSE.
 
再创建一个表,TABLE1(C1,C2)
C1 C2
-------
N 1
W 2
S 3
E 4
SELECT TABLE1.C2,.....
...
WHERE ... AND TABLE1.C1=OTHER.风向
ORDER BY TABLE1.C2
 
这个方法是可行的,谢谢你了!!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部