SQL2005排序问题

ck_邬 2009-06-08 08:51:35
现在遇到个怪问题,
SQL2005的排序规则是SQL_Latin1_General_CP1_CI_AS,
而我建的数据库排序用的是Chinese_PRC_CI_AS,
我建了一个视图的内容如下:

SELECT TOP 100 PERCENT
(select CEName from country where CountryCode = A.SellTo) COLLATE Chinese_PRC_CI_AS AS '国家',
A.OurOrderNO COLLATE Chinese_PRC_CI_AS AS 定单号,
B.FCode COLLATE Chinese_PRC_CI_AS AS 产品物料代码,
B.PCName COLLATE Chinese_PRC_CI_AS AS 产品中文名称,
B.Description COLLATE Chinese_PRC_CI_AS AS 产品规格,
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) AS [定单数量/箱],
b.CHECKQTY AS [样/赠品],
IsNull(B.QTY,0) AS [实际完成数量],
B.NetWeight / 1000 AS [净重/箱],
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) * B.NetWeight / 1000 AS [总净重/公斤],
A.AllowProducedDate AS 允许生产完成日期,
B.ConfirmDate AS 生产预计完成日期,
A.FactStowagedDate 实际装柜日期,
A.ModeOfShipment AS [货柜情况],
A.VeryImportant AS 定单备注,
B.VeryImportant AS 产品备注
FROM dbo.OrderMaster A INNER JOIN
dbo.OrderDetail B ON A.OurOrderNO = B.OurOrderNO --and B.Qty > 0
WHERE (A.State > 0) AND (A.State <= 7) --确认->装柜确认
ORDER BY 国家,定单号,产品物料代码,允许生产完成日期,实际装柜日期 Asc,B.num

我界面用的cxGrid,现在界面里,点击'国家'排序,定单号就会出现分离情况,就是同一国家,同一单号的没有走在一起,
现在找不着方法了,不知道怎么回事,
如果我SQL2005用的Chinese_PRC_CI_AS貌似就没有问题,但实际的环境中不允许我把SQL2005的排序变为Chinese_PRC_CI_AS,
请各位大大帮我看一下啊~
...全文
117 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdhdy 2009-06-08
  • 打赏
  • 举报
回复
你直接从这个视图,order by 呢?
[Quote=引用 10 楼 chadwick 的回复:]
我用sp_help查看这个视图。。结果如下:


SQL code
国家 Chinese_PRC_CI_AS
定单号 Chinese_PRC_CI_AS
产品物料代码 Chinese_PRC_CI_AS
产品中文名称 Chinese_PRC_CI_AS
产品规格 Chinese_PRC_CI_AS
定单数量/箱 NULL
样/赠品 NULL
实际完成数量 NULL
净重/箱 NULL
总净重/公斤 NULL
允许生产完成日期 NULL
生产预计完成日期 NULL
实际装柜日期 N…
[/Quote]
sdhdy 2009-06-08
  • 打赏
  • 举报
回复
不是一个连接查询吗?怎么又变成视图了?
--这样再嵌套一层,试试。
select * from
(SELECT TOP 100 PERCENT
(select CEName from country where CountryCode = A.SellTo) '国家',
A.OurOrderNO AS 定单号,
B.FCode AS 产品物料代码,
B.PCName AS 产品中文名称,
B.Description AS 产品规格,
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) AS [定单数量/箱],
b.CHECKQTY AS [样/赠品],
IsNull(B.QTY,0) AS [实际完成数量],
B.NetWeight / 1000 AS [净重/箱],
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) * B.NetWeight / 1000 AS [总净重/公斤],
A.AllowProducedDate AS 允许生产完成日期,
B.ConfirmDate AS 生产预计完成日期,
A.FactStowagedDate 实际装柜日期,
A.ModeOfShipment AS [货柜情况],
A.VeryImportant AS 定单备注,
B.VeryImportant AS 产品备注
FROM dbo.OrderMaster A INNER JOIN
dbo.OrderDetail B ON A.OurOrderNO = B.OurOrderNO --and B.Qty > 0
WHERE (A.State > 0) AND (A.State <= 7)) b --确认->装柜确认
ORDER BY 国家 COLLATE Chinese_PRC_CI_AS,定单号 COLLATE Chinese_PRC_CI_AS,产品物料代码 COLLATE Chinese_PRC_CI_AS,允许生产完成日期,实际装柜日期 Asc,B.num
ck_邬 2009-06-08
  • 打赏
  • 举报
回复
我用sp_help查看这个视图。。结果如下:


国家 Chinese_PRC_CI_AS
定单号 Chinese_PRC_CI_AS
产品物料代码 Chinese_PRC_CI_AS
产品中文名称 Chinese_PRC_CI_AS
产品规格 Chinese_PRC_CI_AS
定单数量/箱 NULL
样/赠品 NULL
实际完成数量 NULL
净重/箱 NULL
总净重/公斤 NULL
允许生产完成日期 NULL
生产预计完成日期 NULL
实际装柜日期 NULL
货柜情况 Chinese_PRC_CI_AS
定单备注 Chinese_PRC_CI_AS
产品备注 Chinese_PRC_CI_AS

ck_邬 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sdhdy 的回复:]
--try:

SQL codeSELECT TOP 100 PERCENT
(select CEName from country where CountryCode = A.SellTo) '国家',
A.OurOrderNO AS 定单号,
B.FCode AS 产品物料代码,
B.PCName AS 产品中文名称,
B.Description AS 产品规格,
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) AS [定单数量/箱],
b.CHECKQTY AS [样/赠品],
IsNu…
[/Quote]
还是一样的出错信息啊~
sdhdy 2009-06-08
  • 打赏
  • 举报
回复
--try:
SELECT TOP 100 PERCENT 
(select CEName from country where CountryCode = A.SellTo) '国家',
A.OurOrderNO AS 定单号,
B.FCode AS 产品物料代码,
B.PCName AS 产品中文名称,
B.Description AS 产品规格,
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) AS [定单数量/箱],
b.CHECKQTY AS [样/赠品],
IsNull(B.QTY,0) AS [实际完成数量],
B.NetWeight / 1000 AS [净重/箱],
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) * B.NetWeight / 1000 AS [总净重/公斤],
A.AllowProducedDate AS 允许生产完成日期,
B.ConfirmDate AS 生产预计完成日期,
A.FactStowagedDate 实际装柜日期,
A.ModeOfShipment AS [货柜情况],
A.VeryImportant AS 定单备注,
B.VeryImportant AS 产品备注
FROM dbo.OrderMaster A INNER JOIN
dbo.OrderDetail B ON A.OurOrderNO = B.OurOrderNO --and B.Qty > 0
WHERE (A.State > 0) AND (A.State <= 7) --确认->装柜确认
ORDER BY 国家 COLLATE Chinese_PRC_CI_AS,定单号 COLLATE Chinese_PRC_CI_AS,产品物料代码 COLLATE Chinese_PRC_CI_AS,允许生产完成日期,实际装柜日期 Asc,B.num
ck_邬 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ai_li7758521 的回复:]
点【国家】?什么意思
[/Quote]
我的控件点一下列点就会自动排序的,
意思就是我点一下国家,他会自动按国家排序,然后再按第二列的列名排,如此类推..
ck_邬 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sdhdy 的回复:]
SELECT TOP 100 PERCENT
(select CEName from country where CountryCode = A.SellTo) COLLATE Chinese_PRC_CI_AS AS '国家',
A.OurOrderNO COLLATE Chinese_PRC_CI_AS AS 定单号,
B.FCode COLLATE Chinese_PRC_CI_AS AS 产品物料代码,
B.PCName COLLATE Chinese_PRC_CI_AS AS 产品中文名称,
B.Description COLLATE Chinese_PRC_CI_AS AS 产品规格,
(CASE WHEN IsNull(B.QTY,0…
[/Quote]
你这个提示
消息 207,级别 16,状态 1,过程 v_rpDeliveryPlan_OEE,第 41 行
列名 '国家' 无效。
消息 207,级别 16,状态 1,过程 v_rpDeliveryPlan_OEE,第 41 行
列名 '定单号' 无效。
sdhdy 2009-06-08
  • 打赏
  • 举报
回复
把排序规则放到 order by 的字段后面。
sdhdy 2009-06-08
  • 打赏
  • 举报
回复
SELECT TOP 100 PERCENT
(select CEName from country where CountryCode = A.SellTo) COLLATE Chinese_PRC_CI_AS AS '国家',
A.OurOrderNO COLLATE Chinese_PRC_CI_AS AS 定单号,
B.FCode COLLATE Chinese_PRC_CI_AS AS 产品物料代码,
B.PCName COLLATE Chinese_PRC_CI_AS AS 产品中文名称,
B.Description COLLATE Chinese_PRC_CI_AS AS 产品规格,
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) AS [定单数量/箱],
b.CHECKQTY AS [样/赠品],
IsNull(B.QTY,0) AS [实际完成数量],
B.NetWeight / 1000 AS [净重/箱],
(CASE WHEN IsNull(B.QTY,0) =0 THEN IsNull(B.PlanQTY,0) Else B.QTY END) * B.NetWeight / 1000 AS [总净重/公斤],
A.AllowProducedDate AS 允许生产完成日期,
B.ConfirmDate AS 生产预计完成日期,
A.FactStowagedDate 实际装柜日期,
A.ModeOfShipment AS [货柜情况],
A.VeryImportant AS 定单备注,
B.VeryImportant AS 产品备注
FROM dbo.OrderMaster A INNER JOIN
dbo.OrderDetail B ON A.OurOrderNO = B.OurOrderNO --and B.Qty > 0
WHERE (A.State > 0) AND (A.State <= 7) --确认->装柜确认
ORDER BY 国家 COLLATE Chinese_PRC_CI_AS,定单号 COLLATE Chinese_PRC_CI_AS,产品物料代码,允许生产完成日期,实际装柜日期 Asc,B.num



ai_li7758521 2009-06-08
  • 打赏
  • 举报
回复
点【国家】?什么意思
olddown 2009-06-08
  • 打赏
  • 举报
回复
放到临时表或者内存中再排序呢?
xiaowei_001 2009-06-08
  • 打赏
  • 举报
回复
关注..
数据集介绍:垃圾分类检测数据集 一、基础信息 数据集名称:垃圾分类检测数据集 图片数量: 训练集:2,817张图片 验证集:621张图片 测试集:317张图片 总计:3,755张图片 分类类别: - 金属:常见的金属垃圾材料。 - 纸板:纸板类垃圾,如包装盒等。 - 塑料:塑料类垃圾,如瓶子、容器等。 标注格式: YOLO格式,包含边界框和类别标签,适用于目标检测任务。 数据格式:图片来源于实际场景,格式为常见图像格式(如JPEG/PNG)。 二、适用场景 智能垃圾回收系统开发: 数据集支持目标检测任务,帮助构建能够自动识别和分类垃圾材料的AI模型,用于自动化废物分类和回收系统。 环境监测与废物管理: 集成至监控系统或机器人中,实时检测垃圾并分类,提升废物处理效率和环保水平。 学术研究与教育: 支持计算机视觉与环保领域的交叉研究,用于教学、实验和论文发表。 三、数据集优势 类别覆盖全面: 包含三种常见垃圾材料类别,覆盖日常生活中主要的可回收物类型,具有实际应用价值。 标注精准可靠: 采用YOLO标注格式,边界框定位精确,类别标签准确,便于模型直接训练和使用。 数据量适中合理: 训练集、验证集和测试集分布均衡,提供足够样本用于模型学习和评估。 任务适配性强: 标注兼容主流深度学习框架(如YOLO等),可直接用于目标检测任务,支持垃圾检测相关应用。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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