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

Откуда:
Сообщений: 4
Добрый день, накиньте мысль как можно прописать условие. Смысл: имеется запрос, в нём задаются параметры, один из параметров students, так вот, какое условие можно прописать, что бы при выборе одного или нескольких студентов условие исполнялось и в результате запрос обрабатывал только выбранных. Так же возможно, что студентов не выберут, в этом случае необходимо, что бы условие игнорировалось и запрос обрабатывал всех из бд.
В голову кроме приведенного ниже ничего не лезет =(
 and case when @st is not null then STUDENTS.STUDENTS_ID in @st

Сам запрос:
declare @DBK_SYS_VAR_df datetime

declare @DBK_SYS_VAR_dt datetime

declare @d datetime
set @d = GETDATE()
declare @DBK_SYS_VAR_F3 money
set @DBK_SYS_VAR_F3 = 0
declare @id int
declare @DATE_OSTATOK datetime
set @DATE_OSTATOK = {ts '2017-01-01 00:00:00.000'}

declare @st  int
set @st = 100

set @DBK_SYS_VAR_df = '2018-01-01 00:00:00.000'
set @DBK_SYS_VAR_dt = '2018-01-11 00:00:00.000'

SELECT  
 STUDENTS.STUDENTS_ID, FM_CONTR.FM_CONTR_ID, 
  isnull((SELECT sum(at.TRAN_SUM)
FROM FM_ACCOUNT_TRAN at WITH(NOLOCK)
join FM_ACCOUNT_TRAN at2 WITH(NOLOCK) on at.FM_MAIN_TRAN_ID = at2.fm_account_tran_id 
where at2.FM_CONTR_ID = FM_CONTR.FM_CONTR_ID 
  AND (at.TRAN_DATE >= isnull(@DATE_OSTATOK, '2000-01-01 00:00:00.000') and at.TRAN_DATE < @DBK_SYS_VAR_df ) 
  and at.TRAN_TYPE in ('J','K','Z', 'I', 'A','W','O','B')), 0) ostatok_nop, @DBK_SYS_VAR_df df, @DBK_SYS_VAR_dt dt
FROM
 STUDENTS STUDENTS WITH(NOLOCK)  
 JOIN FM_CLINK_STUDENTS FM_CLINK_STUDENTS WITH(NOLOCK)  ON STUDENTS.STUDENTS_ID = FM_CLINK_STUDENTS.STUDENTS_ID 
 JOIN FM_CLINK FM_CLINK WITH(NOLOCK)  ON FM_CLINK.FM_CLINK_ID = FM_CLINK_STUDENTS.FM_CLINK_ID 
 JOIN FM_CONTR FM_CONTR WITH(NOLOCK)  ON FM_CONTR.FM_CONTR_ID = FM_CLINK.FM_CONTR_ID 
WHERE
 (FM_CONTR.DEPOSIT=1) and ........
13 май 18, 13:13    [21406221]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите условие  [new]
Guf
Member

Откуда: Новосибирск
Сообщений: 641
Anastasia1495,

FAQ:Переменное число критериев отбора в запросе
14 май 18, 07:46    [21407032]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите условие  [new]
Massa52
Member

Откуда:
Сообщений: 373
Guf
Anastasia1495,

FAQ:Переменное число критериев отбора в запросе
14 май 18, 08:53    [21407110]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите условие  [new]
Anastasia1495
Member

Откуда:
Сообщений: 4
Всем спасибо) оказалось все гораздо проще
STUDENTS.STUDENTS_ID in ( @st) or (coalesce (@st, -1) = -1)
14 май 18, 16:31    [21408754]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите условие  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Anastasia1495
Всем спасибо) оказалось все гораздо проще
STUDENTS.STUDENTS_ID in ( @st) or (coalesce (@st, -1) = -1)


кхм
STUDENTS.STUDENTS_ID =  @st  or @st IS NULL
14 май 18, 16:39    [21408771]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить