Гость
Форумы / [игнор отключен] [закрыт для гостей] / Выбрать по условию в запросе / 8 сообщений из 8, страница 1 из 1
21.05.2015, 16:54
    #38965556
Янковский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать по условию в запросе
Ребят, сделал промежуточный запрос:


Код: 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.
ВЫБРАТЬ
	&Период КАК Период,
	ТоварыНаСкладахОстатки.Склад КАК Склад,
	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
	ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Цена,
	ТоварыНаСкладахОстатки.КоличествоОстаток * ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Стоимость,
	ЦеныНоменклатурыСрезПоследних.Номенклатура.ВидНоменклатуры.Код,
	ВЫБОР
		КОГДА (ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000031"
				ИЛИ ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000046")
				И ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000014"
			ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
		ИНАЧЕ ВЫБОР
				КОГДА ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000002"
						И ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000010"
					ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
		ИНАЧЕ ВЫБОР
				КОГДА  ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000001"
	                ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
			КОНЕЦ КОНЕЦ
	КОНЕЦ ТЕСТ,
	ЦеныНоменклатурыСрезПоследних.ТипЦен.Код КАК ТипЦенКод
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
		ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
	ТоварыНаСкладахОстатки.Склад = &Склад



Вопрос1: Каким образом из него вытянуть (те же самые) данные по условию " где ТЕСТ не равно null".

P.S. ... или же дайте подобный пример, заранее благодарю.
...
Рейтинг: 0 / 0
21.05.2015, 18:11
    #38965678
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать по условию в запросе
Не Тест есть NULL
...
Рейтинг: 0 / 0
25.05.2015, 08:51
    #38967490
Янковский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать по условию в запросе
...и НЕ Тест есть null, выдает ошибку

{Форма.Форма.Форма(773)}: Ошибка при вызове метода контекста (Выполнить): {(31, 46)}: Поле не найдено "Тест"
ТоварыНаСкладахОстатки.Склад = &Склад и НЕ <<?>>Тест есть null

Вот с этим как бороться, ребят.
...
Рейтинг: 0 / 0
25.05.2015, 09:05
    #38967504
Янковский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать по условию в запросе
Поясню, сейчас запрос изменил на конструкцию вида:


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ЕСТЬNULL (ВЫБОР
		КОГДА (ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000031"
				ИЛИ ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000046")
				И ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000014"
			ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
		ИНАЧЕ ВЫБОР
				КОГДА ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000002"
						И ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000010"
					ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
		ИНАЧЕ ВЫБОР
				КОГДА  ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000001"
	                ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
			КОНЕЦ КОНЕЦ
	КОНЕЦ, -1) КАК ТЕСТ,
//Пустые значения меняем на -1, и в отборе СКД ставим ОТБОР НЕ -1 



А какие еще есть варианты, ведь мой - это чистой воды костыль...
...
Рейтинг: 0 / 0
25.05.2015, 10:30
    #38967580
Владимир Лазурко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать по условию в запросе
Янковскийведь мой - это чистой воды костыль
Кошернее заменить ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000031" на ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры
ЯнковскийОшибка при вызове метода контекста (Выполнить): {(31, 46)}: Поле не найдено "Тест"Поле Тест у тебя вычисляемое, надо было всю ту конструкцию ВЫБРАТЬ ... КОНЕЦ КАК ТЕСТ втулить в условие


ЯнковскийоварыНаСкладахОстатки.Склад = &Склад и НЕ (ВЫБОР
КОГДА (ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000031"
ИЛИ ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000046")
И ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000014"
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
ИНАЧЕ ВЫБОР
КОГДА ТоварыНаСкладахОстатки.Номенклатура.ВидНоменклатуры.Код = "000000002"
И ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000010"
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
ИНАЧЕ ВЫБОР
КОГДА ЦеныНоменклатурыСрезПоследних.ТипЦен.Код = "000000001"
ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
КОНЕЦ КОНЕЦ
КОНЕЦ) есть null
...
Рейтинг: 0 / 0
25.05.2015, 10:42
    #38967595
Янковский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать по условию в запросе
Владимир Лазурко,
спасибо все доступно и по полочкам.
...
Рейтинг: 0 / 0
25.05.2015, 12:38
    #38967765
DoctorRoza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать по условию в запросе
Янковский,
ужасный запрос, неоптимальный! Надеюсь, это именно промежуточный запрос, а не итоговый.
...
Рейтинг: 0 / 0
08.06.2015, 16:06
    #38979202
Uzden Ham
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать по условию в запросе
а не проще добавить

иначе null
КОНЕЦ ТЕСТ,

и выбирать когда не null
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Выбрать по условию в запросе / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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