我试图删除查询的重复标题...
here's my query
Select po.BranchOrderNumber,pod.ItemCode, pod.ItemDescription From RetailPosOrders po
INNER JOIN RetailPosOrderDetails pod
ON po.BranchOrderID = pod.OrderID
我的查询结果现在看起来像这样。
现在我想要的是这样的。
提前谢谢。我打算在Report builder
上使用它。我正在使用Microsoft Sql Server 2014。
答案 0 :(得分:3)
这是最适合在应用程序级别进行的转换。它可以在SQL中使用,但请记住SQL查询和结果集(默认情况下)是无序的。您想要的结果有订购。
但是,您可以使用row_number()
执行此操作:
Select (case when row_number() over (partition by po.BranchOrderNumber order by pod.ItemCode) = 1
then po.BranchOrderNumber else ''
end) as BranchOrderNumber
pod.ItemCode, pod.ItemDescription
From RetailPosOrders po INNER JOIN
RetailPosOrderDetails pod
ON po.BranchOrderID = pod.OrderID
Order by po.BranchOrderNumber, pod.ItemCode;
这假设po.BranchOrderNumber
- 尽管它的名字 - 存储为一个字符串(前导零表明情况就是这样)。
另外,还有一些重要的事情:
order by
必须与over
子句中使用的字段相同。order by
不稳定,这意味着具有相同值的键可以按任何顺序出现,即使对于同一查询的不同运行也是如此。答案 1 :(得分:1)
在Mssql服务器本身无法做到这一点。
如果您要使用console / win / web应用程序显示它,我认为您必须在应用程序级别执行此操作。