2

保存されたビューから SQL Server から Excel にエクスポートしています。そのビューでは、2 つの列で並べ替えられます (order by..)

しかし、エクスポートすると、Excel でランダムに並べ替えられます。

order by でエクスポートする方法は?

ビューのクエリは次のとおりです。

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
4

2 に答える 2

0

申し訳ありませんが、同じ結果セットで sproc を作成することはできませんか?

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 を使用できると思います。

于 2013-05-17T18:49:44.060 に答える
0

@Pondlifeが正しく指摘しているように、そのクエリが実際にはビュー定義であるORDER BY 場合、そのビューから選択するときにを指定する必要があります。つまり、次のようなものです。

SELECT *
FROM YourView
ORDER BY ProductGroupID, Partner
;

または、実際にデータを転送するために使用しているクエリのように見えます。

ビュー定義のORDER BY 、結果セットの固定順序を提供しません。実際、句があるため、そこでのみ許可されます。この場合TOPの正式な1の意味は、ORDER BYの正しい行順序を設定することTOPですが、このビューから読み取られるクエリの結果については設定しません。 .


1 +テクニックを使用する実際の意味については、次のスレッドを参照してください: Select Top 100 Percent を使用する理由 .SELECT TOP 100 PERCENTORDER BY

于 2013-05-31T09:01:17.707 に答える