存储过程中的排序问题

jntvip 2003-08-19 10:43:43
在临时表#Report中插入数据,先插入每个客户的期初数,然后插入一定日期内的发生数,在插入每个客户每月发生合计(group by kh,month),最后插入每个客户的累计数(group by kh)。然后要将按客户编码、月份、日期、单据号排序的数据插入到另一张临时表#ReportSC,sql语句是:
select month,day,billcode,zy,md,mc,ye
from #Report a inner join kh on a.khid=kh.khid
order by khcode,month,day,billcode

然后查询#reportSC,排序有些混乱,数据是按客户进行分组排序的,但每个客户的顺序是不正确的,这该怎样解决呢
...全文
279 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
changechange 2003-08-21
  • 打赏
  • 举报
回复
其实,要解决这个问题非常简单,第一排序就是按客户,你可以在客户后面再加一个字符生成一个主排序字段就可以了( order by 客户,排序字符,日期....) ,比如

期初 客户1 u
明细 客户1 v
合计 客户1 w
总计 客户1 x

你在用insert into的时候就可以生成这个字段了。
zjcxc 2003-08-21
  • 打赏
  • 举报
回复
那你在创建临时表后,创建一个索引来让它排序吧

CREATE CLUSTERED INDEX IX_temp_Report ON #Report
(
客户编号
)
jntvip 2003-08-20
  • 打赏
  • 举报
回复
加过,排序也不对,但顺序和没加是不一样的
zjcxc 2003-08-20
  • 打赏
  • 举报
回复
那你在插入临时表中增加一个标识(identity)字段试试
jntvip 2003-08-20
  • 打赏
  • 举报
回复
select month,day,billcode,zy,md,mc,ye
from #Report a inner join kh on a.khid=kh.khid
order by 客户编号,month,day,billcode
结果正确,
将结果集插入另一临时表,结果改变
zjcxc 2003-08-20
  • 打赏
  • 举报
回复
查询临时表的时候加上order by 结果是否正确?
jntvip 2003-08-20
  • 打赏
  • 举报
回复
select month,day,billcode,zy,md,mc,ye
from #Report a inner join kh on a.khid=kh.khid
order by 客户编号,month,day,billcode
的写法,单独查询,结果正确,
例: AAJE 联想 1 1 00001 200 0 200
AAJE 联想 1 2 00002 300 0 500
AAJE 联想 1 本期合计 500 0 500
.
.
QQMN
QQMN
SSBN
..
ZZMN 郑州
ZZMN
..
QQMN
然后将查询结果插入另一个临时表,查询另一个临时表,结果不正确,应该是按字母顺序排列的,现在却截断后面的数据插到了中间
CrazyFor 2003-08-20
  • 打赏
  • 举报
回复
#Report增加一列,就叫它排序列吧,手工控制每次插入数据的顺序.
pengdali 2003-08-20
  • 打赏
  • 举报
回复

你每个客户有编号来区分他们的先后吗?

select month,day,billcode,zy,md,mc,ye
from #Report a inner join kh on a.khid=kh.khid
order by 客户编号,month,day,billcode
liuyun2003 2003-08-20
  • 打赏
  • 举报
回复
看客户的需求啊。然后你再加相应的处理。
zjcxc 2003-08-20
  • 打赏
  • 举报
回复
加多一个排序标识:sortid
期初为0,本月合计为1,累计为2

排序的时候再加这个排序标识来排序就行了:
select month,day,billcode,zy,md,mc,ye
from #Report a inner join kh on a.khid=kh.khid
order by khcode,sortid,month,day,billcode
hjb111 2003-08-20
  • 打赏
  • 举报
回复
如果是按照客户排序的话,应当是:
select month,day,billcode,zy,md,mc,ye
from #Report a inner join kh on a.khid=kh.khid
order by khcode
就可以了!
txlicenhe 2003-08-20
  • 打赏
  • 举报
回复
是有点乱,不知道楼主想怎样order by。
amtyuranus 2003-08-20
  • 打赏
  • 举报
回复
那你查询时加上order by 不就可以
jntvip 2003-08-20
  • 打赏
  • 举报
回复
先创建好的,用查询语句直接生成也是排序混乱,但是顺序和创建好的不一样
zjcxc 2003-08-20
  • 打赏
  • 举报
回复
你的临时表是先创建好的,还是用查询语句直接生成的?
PowerBI系列之Power Query专题1.  获取数据 数据源种类介绍和获取Excel数据源输入数据和拷贝数据:创建辅助表解析Json/XML数据格式获取Web网页数据和URL添加动态参数连接数据的四种模式:Import、DirectQuery、Live Connection、Dual双 属于混合模式连接数据库:Sql server、 Mysql(直连但是必须先安装一个mysql插件)DirectQuery直连查询:Sql serverODBC方式获取数据表关联或多个Sql或调用存储过程获取数据SQL动态传参和自定义函数: sql使用参数或数据库名称使用参数连接Sharepoint和OneDrive数据源连接Dataset和Dataflow 替换本地数据源为Sharepoint数据源并保留数据处理操作 终止当前数据刷新Loading:Cancel Query数据源设置-重置数据连接凭证PBIDS连接数据源创建和使用报表模块(输入或值列表)利用报表模板和参数控制线下报表数据权限DirectQuery启用自动页面刷新和更改检测管理聚合表提高DirectQuery查询性能动态M查询参数提高DirectQuery查询性能添加数据刷新时间 DateTime.LocalNow()和Getdate()2.  数据清洗和M语言M语言和官方文档介绍PowerQuery查阅M函数:=#shared, Ctrl+Space提示数据清洗之常用技能:提升标题、更改数据类型、保留删除错误或空行,删除重复项、选择列和删除列、填充单元格、合并列、拆分、提取、替换、条件替换、添加自定义列,添加条件列、添加索引列、分组、添加年月日列、追加和合并查询透视和逆透视以及转置合并单元格的Excel文件处理导入文件夹多Excel文件并合并解决多文件合并列顺序不一致使用参数和函数批量导入文件 文本提取文、英文、数字等处理双引号转义 列拆分详解解决列名改变错误解决列丢失错误动态显示、排序和重命名列为所有列名添加前缀列名字母大写和分隔符调整Trim标题列的多余空格如何处理load数据错误为什么load的Excel数据有null空行为什么load的Excel数据标题在第二行灵活添加占位符规范同类相似数据数据按多列排序为分组添加Index序号分组内值合并诊断工具分析数据处理过程PowerQuery小技巧分享 新冠病例活动轨迹地图标识 

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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