按顺序从SQL Server导出到Excel
我从保存的视图从SQL Server导出到Excel。 在该视图中,它按两列(按…sorting)
但是,当我导出它,它是随机sorting在Excel中。
如何通过命令导出?
以下是该视图的查询:
SELECT TOP (100) PERCENT GETDATE() AS Date, MixStatusID AS Partner, SUM(CAST(Weight AS float)) AS Weight, SUM(CAST(TotalCostPrice AS float)) AS TotalCost, ProductGroupID FROM dbo.D_ParcelLocation WHERE (ParcelStatusID IN (N'stock', N'memo', N'transfer', N'analyze_un')) AND (ParcelTypeID <> N'M') AND (ProductGroupID <> N'G_POL') AND (ProductGroupID <> N'G_ROU') GROUP BY MixStatusID, ProductGroupID HAVING (SUM(CAST(Weight AS float)) > 0) ORDER BY ProductGroupID, Partner
对不起,但你不能只用相同的结果集创build一个存储过程?
create procedure sp_D_ParcelLocation_s as begin SELECT TOP (100) PERCENT GETDATE() AS Date , MixStatusID AS Partner , SUM(CAST(Weight AS float)) AS Weight , SUM(CAST(TotalCostPrice AS float)) AS TotalCost , ProductGroupID FROM dbo.D_ParcelLocation WHERE (ParcelStatusID IN (N'stock', N'memo', N'transfer', N'analyze_un')) AND (ParcelTypeID <> N'M') AND (ProductGroupID <> N'G_POL') AND (ProductGroupID <> N'G_ROU') GROUP BY MixStatusID, ProductGroupID HAVING (SUM(CAST(Weight AS float)) > 0) ORDER BY ProductGroupID, Partner end
也许这不行? 我不会像这样经常使用Excel,但是我认为你可以像使用视图一样使用sproc。
正如@Pondlife已经正确地指出 ,如果这个查询实际上是一个视图定义,你需要指定一个ORDER BY
从该视图中select ,即这样的事情:
SELECT * FROM YourView ORDER BY ProductGroupID, Partner ;
或者不pipe查询是用来实际传输数据的。
视图定义中的ORDER BY
不会为您提供结果集的固定顺序。 实际上,它只允许在那里,因为有一个TOP
子句,在这种情况下, ORDER BY
的正式含义是为TOP
子句设置正确的行顺序,而不是查询的结果从这个angular度阅读。
1对于使用SELECT TOP 100 PERCENT
+ ORDER BY
技术的实际意义,可以看看这个主题: 为什么使用Select Top 100 Percent? 。