首页 > 解决方案 > 使用 MS SQL Server 根据项目顺序和父类别顺序对项目进行排序

问题描述

我有两个表“Table1”是主类别,“Table2”是项目两个表都有特定顺序的项目

在表 1 中,类别按 ASC 中的 CatOrder 排序,在表 2 中,项目也在 ItemOrder 中排序。

现在我需要根据 CatOrder 的顺序显示项目,然后显示“ItemOrder

Table1
CatID
CatName
CatType
CatOrder

Table2
ItemID
ItemName
ItemLogo
ItemDetails
CatType
ItemOrder

我如何进行 sql 查询,以便它首先获得基于 CatOrder 的所有项目,然后是 ItemOrder

Select ItemName, ItemOrder FROM Table1 t1 JOIN Table2 t1 ON T1.CatType = T2.CatType Order By T2.CatOrder

上面的查询没有得到预期的结果&当我添加 Group By 它得到聚合函数错误

预期结果

Item    |CatOrder   |   ItemOrder
Item 1  |   10  |   10
Item 3  |   10  |   20
Item 2  |   10  |   30
Item 5  |   20  |   10
Item 4  |   20  |   20
Item 6  |   20  |   30
Item 7  |   30  |   10

标签: sqlsql-server

解决方案


您可以尝试使用多个order by

顺序排序将取决于您的order by列顺序。

Select ItemName, CatOrder,ItemOrder
FROM Table1 t1
JOIN Table2 T2 ON T1.CatType = T2.CatType
Order By CatOrder,ItemOrder

推荐阅读