0

複数の条件に関するストアド プロシージャがあり、結果セットを 1 つのプロシージャに結合したい...

ALTER PROCEDURE [dbo].[usp_TotalReceivedUnits_Country]
@ContractCode NVARCHAR (20), 
@CountryCode NVARCHAR (10),
@Years NVARCHAR(1000)
AS
BEGIN
        SELECT ISNULL(SUM(S.NettoWeight), 0) TotalNettoWeight, COUNT(S.ShipmentID) Loads, ReceivalDateYear = YEAR(S.ReceivalDate)
        FROM   Shipment S
        WHERE S.ContractCode = @ContractCode AND 
              S.[OrigCountryCode] = @CountryCode AND
              S.ClosedYN = 0 AND 
              S.Shipped = 1 AND
              S.DeletedYN = 0 AND
              S.OutInbound = 2 AND
              YEAR(S.ReceivalDate) IN (SELECT Data FROM dbo.fnSplitString(@Years, ','))
        GROUP BY YEAR(S.ReceivalDate)
END
GO

ALTER PROCEDURE [dbo].[usp_TotalProcessedUnits_Country]
@ContractCode NVARCHAR (20), 
@CountryCode NVARCHAR (10),
@Years NVARCHAR(1000)
AS
BEGIN
    SELECT ISNULL(SUM(S.NettoWeight), 0) TotalNettoWeight, COUNT(S.ShipmentID) Loads, ReceivalDateYear = YEAR(S.ReceivalDate)
    FROM   Shipment S with (nolock)
    WHERE S.ContractCode = @ContractCode AND 
          S.OrigCountryCode = @CountryCode AND
          S.ClosedYN = 1 AND 
          S.Shipped = 1 AND
          S.FinanceDetailsYN = 0 AND
          S.DeletedYN = 0 AND
          S.OutInbound = 2 AND
          YEAR(S.ReceivalDate) IN (SELECT Data FROM dbo.fnSplitString(@Years, ','))
    GROUP BY YEAR(S.ReceivalDate)
END
GO

上記の 2 つの手順は、処理されて受信された要約によって同じ結果カウントを持ちますが、複数の条件を持つ 1 つのクエリにそれらを結合するにはどうすればよいですか?

4

1 に答える 1

0

あなたの質問を正しく理解できれば、出力を一時テーブルにロードしてから選択できるはずです。

CREATE TABLE #out1(TotalNettoWeight INT, Loads INT, ReceivalDateYear DATETIME2);
CREATE TABLE #out2(TotalNettoWeight INT, Loads INT, ReceivalDateYear DATETIME2);
GO

INSERT #out1
EXEC [dbo].[usp_TotalReceivedUnits_Country] 123,6,10;

INSERT #out2
EXEC [dbo].[usp_TotalProcessedUnits_Country] 123,6,10;
GO

SELECT * FROM #out1
UNION
SELECT * FROM #out2
GO

DROP TABLE #out1;
DROP TABLE #out2;
GO
于 2013-03-01T14:15:31.827 に答える