powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / v8 можно ли добавить условие в запрос в зависимости от параметра?
25 сообщений из 27, страница 1 из 2
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37573709
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такой запрос
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
ВЫБРАТЬ
	РеализацияТоваровУслуг.Ссылка,
	СчетФактураВыданный.Ссылка КАК Ссылка1
ИЗ
	Документ.СчетФактураВыданный КАК СчетФактураВыданный,
	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
	РеализацияТоваровУслуг.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ)
	И СчетФактураВыданный.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ)


можно ли сделать чтобы выбирались либо оба вида документов, либо только один из них?
допустим на форме будут 2 флажка. если выбраны оба то и выбираться должны оба вида документов, если выбран первый флажок то выбираться будут допустим только РеализацияТоваровУслуг
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37573754
rigus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос какой то дурацкий у Вас если честно (У Вас выведется полное пересечение этих двух видов документов за выбранный период
. Смотрите в сторону Объединить Все, и если нужны произвольные виды, то в сторону динимического запроса (чтобы текст запроса формировался в зависимости от параметров), ну а если не охота динамики, то в кихните в услови по соответствующему виду документа условия типа &Флаг1=истина для другого &Флаг2=истина.
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37574007
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
{ГДЕ
РеализацияТоваровУслуг.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ)
СчетФактураВыданный.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ)}

Почитайте про "{}"


"Запрос какой то дурацкий у Вас если честно" +1. Проще через объединение.
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37574497
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот запросы 8.х и показали, что половина 1с-ников про SQL только краем уха слышали
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37574504
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37574570
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мужики вы это не ругайтеся сильно. это я так для того чтобы разобраться как сделать в принципе.
про "{}" сча буду смотреть. спасиб
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37576766
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не используется СКД или построитель, то можно сделать финт ушами а-ля:
Код: sql
1.
2.
3.
WHERE
 CASE WHEN &FlagOne THEN <Condition> END AND [OR] 
 CASE WHEN &FlagTwo THEN <Condition> END ....



Подсластить можно по вкусу, помучать субд на предмет производительности конструкции и т.п.
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37576838
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все разобрался. всем спасибо. вот что получилось
Код: vbnet
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.
34.
35.
36.
ВЫБРАТЬ
		|	РеализацияТоваровУслуг.Ссылка КАК Док,
		|	РеализацияТоваровУслуг.Дата КАК ДатаДок,
		|	РеализацияТоваровУслуг.СуммаДокумента КАК Сумма
		|ИЗ
		|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
		|ГДЕ
		|	РеализацияТоваровУслуг.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ)
		|	И &Флаг1 = ИСТИНА
		|	И РеализацияТоваровУслуг.Номер ПОДОБНО &Номер
		|	{И РеализацияТоваровУслуг.Контрагент В(&СписокКонтр)}
		|СГРУППИРОВАТЬ ПО
		|	РеализацияТоваровУслуг.Ссылка,
		|	РеализацияТоваровУслуг.Дата,
		|	РеализацияТоваровУслуг.СуммаДокумента
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	СчетФактураВыданный.Ссылка,
		|	СчетФактураВыданный.Дата,
		|	СчетФактураВыданный.СуммаДокумента
		|ИЗ
		|	Документ.СчетФактураВыданный КАК СчетФактураВыданный
		|ГДЕ
		|	СчетФактураВыданный.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНач, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ)
		|	И &Флаг2 = ИСТИНА
		|	И СчетФактураВыданный.Номер ПОДОБНО &Номер
		|	{И СчетФактураВыданный.Контрагент В(&СписокКонтр)}
		|СГРУППИРОВАТЬ ПО
		|	СчетФактураВыданный.Ссылка,
		|	СчетФактураВыданный.Дата,
		|	СчетФактураВыданный.СуммаДокумента
		|
		|УПОРЯДОЧИТЬ ПО
		|	ДатаДок
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37576858
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже хорошо.

1. Только в условии на первом месте
ГДЕ
| &Флаг1 (так быстрее)
| И тд

2. Упорядочить здесь бессмысленно. Сделай например в вложенном запросе и только после получение вложенного запроса напишешь:

|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Дата

3. Группировать бессмысленно - ты же не к табличной части документа обращаешся.
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37576874
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с,

ок учту. группировку мне сам конструктор сделал. не обратил внимания ))))
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37576904
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чего же хорошего?
вместо того что бы сформировать текст запроса по условию он сервер флагами напрягает
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37577026
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sWinTyz, по сравнению с первым вариантом это небо и земля.

Во вторых мы так и не узнали скд это или нет.
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37577037
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не СКД
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37577142
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лень побеждает почесуху рук ...

может и небо и земля )
но не правильно
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37577985
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с1. Только в условии на первом месте
ГДЕ
| &Флаг1 (так быстрее)
| И тд


На чём основано это утвеждение и для какой платформы верно?
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37578003
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всегда проверяется первое условие в списке первым
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37578069
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sWinTyz,

Я вот и спрашиваю, где это написано?
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37578108
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати в поддержку "Программитс 1С"- действительно стало выполняться быстрее. по крайней мере кажется
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37578247
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно открыть книгу и написать вам название , автора и номер страницы?
а оно мне надо?
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37578349
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sWinTyzвсегда проверяется первое условие в списке первым
На примере MSSQL 2005 вот два примера, таблица источник может быть заменена на что угодно, столбец на который накладывается условие тоже не важен.
1) условие №1 всегда ложно
Код: sql
1.
2.
3.
declare @p1 bit
set @p1 = 2
select * from dbo.DBFields where @p1=1 and FldName like '%'


2) условие №2 всегда истинно
Код: sql
1.
2.
3.
declare @p1 bit
set @p1 = 1
select * from dbo.DBFields where @p1=1 and FldName like '%'


На выходе что в 1, что в 2 видим предикат: [AppBuilder].[dbo].[DBFields].[FldName] like N'%'

Насчет 1С 8.Х вы правы (Я имею ввиду т.н. сокращенной проверки условий, т.е. если условия записаны через "И" и первое условие = ЛОЖЬ то проверка других условий производится не будет), однако для СУБД это отнюдь не так.
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37578367
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я тупой адинэснег
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37578456
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHDPПрограммист 1с1. Только в условии на первом месте
ГДЕ
| &Флаг1 (так быстрее)
| И тд


На чём основано это утвеждение и для какой платформы верно?Для файловой версии прописано в документации - что условия проверяются по порядку.
Для sql нигде. Но в Теории план запроса не должен проверять все "И" если первое не выполняется - иначе "он" глупый. С другой стороны он может быть Умный и Сам поменяет местами условия в "И"
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37578489
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с,

Что файловая не будет проверять заведомо лишние условия - спасибо. Не помнил такой особенности, но вполне логично.
Но если второе поле индексировано, а первое нет и вероятность отсеивания примерно одинакова и больше 30-50% - результат должен быть иным.
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37579061
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHDP, ты не заметил. Первое поле "&Флаг1" это не поле. А просто значение Булево.

А логика Субд - это один Агромный черный ящик. Одни только вероятностные предположения.
...
Рейтинг: 0 / 0
v8 можно ли добавить условие в запрос в зависимости от параметра?
    #37579091
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сAHDP, ты не заметил. Первое поле "&Флаг1" это не поле. А просто значение Булево.

А логика Субд - это один Агромный черный ящик. Одни только вероятностные предположения.
Анализ планов как правило позволяет изгнать злых духов.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / [игнор отключен] [закрыт для гостей] / v8 можно ли добавить условие в запрос в зависимости от параметра?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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