Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите изменить procedure  [new]
VovaH
Member

Откуда:
Сообщений: 19
Всем добрый день,

Мне надо изменить уже существующую procedure.
Сейчас @trantype может получать значения 'L','M' or 'A'.
Мне надо изменить процедуру так, чтоб я мог послать например @trantype='LM' и получить результат для 'L' and 'M' .

ALTER FUNCTION [dbo].[ESD_JCMarginReports18] (@ToDate datetime, @trantype varchar (1))

RETURNS table
AS
    RETURN
    (
   
    SELECT    t1.CustomerKey, t1.SalespersonKey, t1.JobCostReference,
            t1.Amt, t1.TransactionDate as TranDate, 'COST' as JCType, t1.JCTransactionType as TransactionType
    FROM    ESD_JCCURTRN_VW_RPT as t1
    WHERE    t1.TransactionDate between (dateadd (month, -18, @ToDate)) and @ToDate
    AND     t1.JCTransactionType = CASE @trantype
        WHEN 'L' THEN 'L'
        WHEN 'M' THEN 'M'
        when 'A' then null
    END)
   

    UNION ALL
   
    SELECT    t2.CustomerKey, t2.SalespersonKey, t2.JobCostReference,
            t2.BudgetAmt, t2.TransactionDate as TranDate, 'REV' as JCType, t2.JCTransactionType as TransactionType
    FROM    ESD_JCREVTRN_VW_RPT as t2
    where    t2.TransactionDate between (dateadd (month,-18,@ToDate)) and @ToDate
    AND        t2.JCTransactionType = isnull(@trantype, t2.JCTransactionType)
   
       
)

Спасибо за помощь
15 ноя 11, 00:41    [11596670]     Ответить | Цитировать Сообщить модератору
 Re: помогите изменить procedure  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
VovaH
получить результат для 'L' and 'M'
Разве может t1.JCTransactionType быть равно одновременно и 'L' и 'M' ?
15 ноя 11, 00:46    [11596676]     Ответить | Цитировать Сообщить модератору
 Re: помогите изменить procedure  [new]
VovaH
Member

Откуда:
Сообщений: 19
одновременно нет, но мне нужны все записи где t1.JCTransactionType='L' or 'M'
15 ноя 11, 00:50    [11596682]     Ответить | Цитировать Сообщить модератору
 Re: помогите изменить procedure  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Массивы и Списки в SQL Server
15 ноя 11, 00:54    [11596691]     Ответить | Цитировать Сообщить модератору
 Re: помогите изменить procedure  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8879
when '%'+t1.JCTransactionType+'%' like @trantype


или

when charindex(t1.JCTransactionType,@trantype) > 0



--- ну, типа так...
15 ноя 11, 01:00    [11596702]     Ответить | Цитировать Сообщить модератору
 Re: помогите изменить procedure  [new]
FantomGood
Member

Откуда: Херсон
Сообщений: 340
1) не забыть поменять размер поля @trantype varchar (1))

2) t1.JCTransactionType in dbo.TableFunctionSplitter(@trantype )
15 ноя 11, 01:01    [11596704]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить