0

クエリは次のとおりです (MS SQL):

use DB_432799_satv

select [DB_432799_satv].[dbo].ac_Orders.OrderNumber, OrderDate, PaymentDate, 
    CompletedDate, ShipDate,DateTimeFinishedPicking,DateTimeShipped, 
    ShipMethodName, PaymentMethodName
from [DB_432799_satv].[dbo].ac_Orders
Inner join [DB_432799_satv].[dbo].ac_Payments on 
    [DB_432799_satv].[dbo].ac_Orders.OrderId  = 
    [DB_432799_satv].[dbo].ac_Payments.OrderId
Inner join [DB_432799_satv].[dbo].ac_OrderShipments on  
    [DB_432799_satv].[dbo].ac_Orders.OrderId = 
    [DB_432799_satv].[dbo].ac_OrderShipments.OrderId
Inner join [DB_432799_satv].[dbo].[ac_Transactions] on 
    [DB_432799_satv].[dbo].ac_Payments.paymentid = 
    [DB_432799_satv].[dbo].ac_Transactions.paymentid
Inner join [SuperATV].[dbo].[tblPartsBoxHeader] on 
    [DB_432799_satv].[dbo].[ac_transactions].[ProviderTransactionId] = 
    [SuperATV].[dbo].[tblPartsBoxHeader].[ordernumber]

これをストアドプロシージャに変更するにはどうすればよいですか?

4

1 に答える 1

1

あなたが望むのは、「ビュー」があなたに与えるものだと思います。具体的には、そのクエリをデータベースに保存し、次のように選択します。

SELECT * FOM myLongQueryView WHERE OrderNumber = 1234;

私は MSSQL を開発していませんが、クイック検索で msdn のこのドキュメント ページが見つかりました。次のようになると思います。

CREATE VIEW [DB_432799_satv].myLongQueryView
AS 
select [DB_432799_satv].[dbo].ac_Orders.OrderNumber, OrderDate, PaymentDate, 
    CompletedDate, ShipDate,DateTimeFinishedPicking,DateTimeShipped, 
    ShipMethodName, PaymentMethodName
from [DB_432799_satv].[dbo].ac_Orders
...

クエリCREATE VIEW [DB_432799_satv].myLongQueryView ASの先頭に を追加し、ドキュメント ページを使用してオプションが必要かどうかを判断してください。

現在の結果ではなく、クエリが保存されることに注意することが重要です。そのため、データを最新の状態に保つことができます。結合可能、集約可能など...

于 2012-08-30T20:21:05.493 に答える