2014-10-12 3 views
0

Напишите дату поступления заказа и дату отправки UDF. Сделайте UDF возвратом количества заказов на продажу (используя кредитные карты Vista), которые произошли между датой заказа и датой отправки, введенной пользователем.Сделайте дату начала и дату окончания приема UDF. И возвращение

(Таблица Sales-SalesOrderHeader в AdventureWorks2012 в SQL Server 2012).

Похоже, я должен ссылаться на 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) 

Может кто-нибудь, пожалуйста, покажите мне, как это делается?

ответ

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') 
+0

_____ _ _ __ __ | _ _ | | _ ___ ___ | | _ | | | ___ _ _ | | | | . | | «_ | | _ _ | , | | | | _ | | _ | _ | __ | _ | _ | _ _ | | _ | | ___ | ___ | СПАСИБО, Джон. Я запустил скрипт, и он работает. «JOIN» - это место, где мне нужно хорошо учиться и учиться. Я ценю понимание. – Eda

+0

Без проблем @Eda. Вы можете принять это как ответ, если вы довольны этим. – JohnS

Смежные вопросы