将 exec 和 select 组合成单个查询

combine exec and select into single query

我需要将这些组合成一个查询,我该怎么做 我试过 Union 也许我做错了。有人建议我尝试使用 temp table 但不确定我是如何使用 temp table 的,也许我一生中只用过一次。我假设您创建了一个 table 并进行了某种插入,但是 proc 的 exec 呢?

    DECLARE
@VendorName AS NVARCHAR(100) = 'DOGWOOD TRUCKING',
@Commodity AS NVARCHAR(100) = 'WASTE',
@GLAccount AS NVARCHAR(20),
@CostCenter AS NVARCHAR(20),
@InternalOrderNum AS NVARCHAR(20),
@BeginDate AS DATE = '3/1/2016',
@EndDate AS DATE = '3/31/2016'

DECLARE
    @InvoiceDate AS NVARCHAR(10) = (SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY])

SELECT TOP 1
    Vendor_Name,
    Vendor_Address,
    Vendor_City,
    Vendor_State,
    Vendor_Zip_Code,
    ISNULL(Vendor_Email, ' ') AS 'Vendor_Email',
    ISNULL(Vendor_Phone_1, ' ') AS 'Vendor_Phone',
    Vendor_SAP_Num,
    @InvoiceDate AS 'Invoice_Date',
    @BeginDate AS 'Invoice_Start_Date',
    @EndDate AS 'Invoice_End_Date'
FROM 
    dbo.List_Vendors 
WHERE 
    Vendor_Name = @VendorName

EXEC [dbo].[VB_Truck_Report_Sell_Invoice] @VendorName, @Commodity, @BeginDate, @EndDate

我认为您不需要 UNION 查询。我想你需要把它放在一起。也许我错了,但希望它有所帮助:

DECLARE
@VendorName AS NVARCHAR(100) = 'DOGWOOD TRUCKING',
@Commodity AS NVARCHAR(100) = 'WASTE',
@GLAccount AS NVARCHAR(20),
@CostCenter AS NVARCHAR(20),
@InternalOrderNum AS NVARCHAR(20),
@BeginDate AS DATE = '3/1/2016',
@EndDate AS DATE = '3/31/2016'

DECLARE
    @InvoiceDate AS NVARCHAR(10) = (SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY])

SELECT TOP 1
    Vendor_Name,
    Vendor_Address,
    Vendor_City,
    Vendor_State,
    Vendor_Zip_Code,
    ISNULL(Vendor_Email, ' ') AS 'Vendor_Email',
    ISNULL(Vendor_Phone_1, ' ') AS 'Vendor_Phone',
    Vendor_SAP_Num,
    @InvoiceDate AS 'Invoice_Date',
    @BeginDate AS 'Invoice_Start_Date',
    @EndDate AS 'Invoice_End_Date,
    @Commodity,
    @GLAccount,
    @CostCenter,
    @InternalOrderNum,
    @BeginDate,
    @EndDate,
    @InvoiceDate
FROM 
    dbo.List_Vendors 
WHERE 
    Vendor_Name = @VendorName 

那么你将拥有一切。

希望对您有所帮助,请告诉我我的帮助是否有误。