【问题标题】:Column Grouping with specific order具有特定顺序的列分组
【发布时间】:2018-03-20 15:57:44
【问题描述】:

是否可以使用GROUP BY从查询更改结果集中记录/组的顺序?

我有这个问题:

SELECT Category,
    Subcategory,
    ProductName,
    CreatedDate,
    Sales
FROM TableCategory tc INNER JOIN
    TableSubCategory ts ON tc.col1 = ts.col2 INNER JOIN
    TableProductName tp ON ts.col2 = tp.col3   
GROUP BY Category,
    SubCategory,
    ProductName,
    CreatedDate,
    Sales

现在,我正在创建一个 SSRS 报告,其中 Category 是主行组,然后 SubCategory 是其子行组。那么ProductName 就是一个主列组。

[截图链接失效:http://www.(freeimagehosting).net/uploads/8035123725.jpg]

它运行完美,但它以字母顺序显示ProductNames。我希望它以自定义顺序(由我定义)显示ProductNames,例如:

ProductNo5 in 3rd column,  
ProductNo8 in 4th column,  
ProductNo1 in 5th column   
... and so on!

【问题讨论】:

    标签: reporting-services ssrs-2008 ssrs-grouping


    【解决方案1】:

    我不知道产品 ssrs,但我知道一般的 SQL。在 SQL 中,您必须添加一个额外的列。您可以将类型为 Numeric/number 的列 myOrder 添加到 ProductNames 表并填充 myOrder 列,使其与您想要的任何顺序相对应。之后你可以做这样的事情:

    SELECT Category, 
        Subcategory, 
        ProductName, 
        CreatedDate, 
        Sales 
    FROM TableCategory tc 
    INNER JOIN TableSubCategory ts 
    ON tc.col1 = ts.col2 
    INNER JOIN TableProductName tp 
    ON ts.col2 = tp.col3
    GROUP BY Category, 
        SubCategory, 
        ProductName, 
        CreatedDate, 
        Sales 
    ORDER BY TableProductName.myOrder
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多