Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 按订单从SQL Server导出到Excel_Sql Server_Excel_Sorting_Export - Fatal编程技术网

Sql server 按订单从SQL Server导出到Excel

Sql server 按订单从SQL Server导出到Excel,sql-server,excel,sorting,export,Sql Server,Excel,Sorting,Export,我正在从保存的视图将SQL Server导出到Excel。在该视图中,它按两列排序(排序依据..) 但当我导出它时,它在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,

我正在从保存的视图将SQL Server导出到Excel。在该视图中,它按两列排序(排序依据..)

但当我导出它时,它在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
选择TOP(100)PERCENT GETDATE()作为日期,MixStatusID作为合作伙伴,SUM(CAST)作为权重
float)作为重量,SUM(CAST(TotalCostPrice作为float))作为总成本,ProductGroupID
来自dbo.D_ParcelLocation
其中(ParcelStatusID IN(N'stock',N'memo',N'transfer',N'Analysis_un'))和(ParcelTypeID N'M')和(ProductGroupID N'G_POL')和(ProductGroupID N'G_ROU'))
按MixStatusID、ProductGroupID分组
具有(总和(铸造(重量为浮动))>0)
按ProductGroupID、合作伙伴排序的订单

对不起,您不能创建一个具有相同结果集的存储过程吗

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
创建过程sp\u D\u ParcelLocation\u s作为
开始
选择顶部(100%)百分比GETDATE()作为日期
,MixStatusID作为合作伙伴
,和(铸造(浮子重量))作为重量
,总计(铸造(总成本价格为浮动))为总成本
,ProductGroupID
来自dbo.D_ParcelLocation
其中(包裹状态输入(N'stock',N'memo',N'transfer',N'analyze_un'))
和(ParcelTypeID N'M')
和(ProductGroupID N'G_POL')
和(ProductGroupID N'G_ROU')
按MixStatusID、ProductGroupID分组
具有(总和(铸造(重量为浮动))>0)
按ProductGroupID、合作伙伴排序的订单
结束
也许这样不行?我不经常这样使用Excel,但我认为您可以使用存储过程和视图。

因为,如果该查询实际上是一个视图定义,您需要在从该视图中选择时指定一个
ORDER BY
,例如:

SELECT *
FROM YourView
ORDER BY ProductGroupID, Partner
;
或者,无论您使用什么样的查询来实际传输数据

视图定义中的排序依据不提供结果集的固定顺序。事实上,只允许这样做是因为有一个
TOP
子句,在这种情况下,
orderby
的形式意义是为
TOP
子句设置正确的行顺序,而不是为从该视图读取的查询结果设置行顺序



1关于使用
选择前100%
+
顺序排序技术的实际意义,您可以查看以下线程:。

您可以向我们展示视图定义吗?(用于创建视图的SQL脚本)请不要将代码示例或示例数据放入注释中-因为您无法对其进行格式化,所以读取它非常困难。。。。取而代之的是:通过编辑你的问题来更新它,以提供额外的信息!谢谢。
ORDER BY
在视图中不起作用(请参阅和)。如果要排序结果,必须在查询中使用
ORDER BY
。SQL Server的哪个版本?抱歉,我不在:SQL 2008 R2,我正在尝试将其添加到导出查询中,如下所示:创建表
Z_STOCK\u PARTNERS\u 2
Date
DateTime,
ProductGroupID
LongText)Order by
ProductGroupID
,但它告诉我语法错误,我从未使用过存储过程。。我将添加它之后,如何处理它?