powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите условие
5 сообщений из 5, страница 1 из 1
Подскажите условие
    #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
Подскажите условие
    #39644122
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подскажите условие
    #39644145
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подскажите условие
    #39644522
Anastasia1495
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо) оказалось все гораздо проще
Код: sql
1.
STUDENTS.STUDENTS_ID in ( @st) or (coalesce (@st, -1) = -1)
...
Рейтинг: 0 / 0
Подскажите условие
    #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
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите условие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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