Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите условие / 5 сообщений из 5, страница 1 из 1
13.05.2018, 13:13
    #39643824
Anastasia1495
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите условие
Добрый день, накиньте мысль как можно прописать условие. Смысл: имеется запрос, в нём задаются параметры, один из параметров students, так вот, какое условие можно прописать, что бы при выборе одного или нескольких студентов условие исполнялось и в результате запрос обрабатывал только выбранных. Так же возможно, что студентов не выберут, в этом случае необходимо, что бы условие игнорировалось и запрос обрабатывал всех из бд.
В голову кроме приведенного ниже ничего не лезет =(
Код: sql
1.
 and case when @st is not null then STUDENTS.STUDENTS_ID in @st


Сам запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
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 ........
...
Рейтинг: 0 / 0
14.05.2018, 07:46
    #39644122
Guf
Guf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите условие
...
Рейтинг: 0 / 0
14.05.2018, 08:53
    #39644145
Massa52
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите условие
...
Рейтинг: 0 / 0
14.05.2018, 16:31
    #39644522
Anastasia1495
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите условие
Всем спасибо) оказалось все гораздо проще
Код: sql
1.
STUDENTS.STUDENTS_ID in ( @st) or (coalesce (@st, -1) = -1)
...
Рейтинг: 0 / 0
14.05.2018, 16:39
    #39644526
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите условие
Anastasia1495Всем спасибо) оказалось все гораздо проще
Код: sql
1.
STUDENTS.STUDENTS_ID in ( @st) or (coalesce (@st, -1) = -1)



кхм
Код: sql
1.
STUDENTS.STUDENTS_ID =  @st  or @st IS NULL
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите условие / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]