【问题标题】:Make a UDF accepting start date and end date. And returning制作一个接受开始日期和结束日期的 UDF。并返回
【发布时间】:2014-10-12 17:57:43
【问题描述】:

写一个UDF接受订单日期和发货日期。使 UDF 返回发生在用户输入的订单日期和发货日期之间的销售订单数量(使用 Vista 信用卡)。

(SQL Server 2012 中 AdventureWorks2012 中的表为 Sales-SalesOrderHeader)。

看来我必须参考Sales-CreditCard 表才能获得确切的卡名,因为Sales.SalesOrderHeader 表中没有提供该名称:

CREATE FUNCTION fx_SalesNmbr INT 
   (SELECT  OrderDate, ShipDate 
    FROM   Sales.SalesOrder  
    WHERE  CreditCardID = Vista (Maybe is should be a function @ Creditcardname)

有人可以告诉我它是怎么做的吗?

【问题讨论】:

    标签: sql sql-server tsql user-defined-functions


    【解决方案1】:
    CREATE FUNCTION dbo.fx_SalesNmbr 
    (
      @pOrderDate DATETIME, 
      @pShipDate DATETIME,
      @pCardType NVARCHAR(50)
    )
    RETURNS INT
    AS
    BEGIN
      DECLARE @result INT
      SELECT
        @result = COUNT(*)
      FROM
        Sales.SalesOrderHeader AS soh    
        JOIN Sales.CreditCard AS cc 
          ON soh.CreditCardID = cc.CreditCardID
      WHERE
        cc.CardType = @pCardType 
        AND soh.OrderDate = @pOrderDate 
        AND soh.ShipDate = @pShipDate
    
      RETURN @result  
    END  
    GO
    
    SELECT dbo.fx_SalesNmbr ('2001-07-01', '2001-07-08', 'Vista')
    

    【讨论】:

    • _____ _ _ __ |_ | | ___ | | | | |_ _ _ | | | | '| | '| | | . | | | |_| |_|_|_,|_|_|_,_| |_| |___|___|谢谢你,约翰斯。我已经运行了脚本,它可以工作。 'JOIN'部分是我需要进入和学习的地方。我很欣赏这种洞察力。
    • 没问题@Eda。如果您对此感到满意,您可能会接受它作为答案。
    猜你喜欢
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多