|
выборка в запросе одного вида цен | ☑ | ||
---|---|---|---|---|
0
falselight
26.04.18
✎
10:35
|
Подскажите как поправить запрос?
В нем нужно выбрать только один вид цен "Прайс-Лист" ВЫБРАТЬ ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура) КАК Номенклатура, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Характеристика, ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика) КАК Характеристика, МАКСИМУМ(ВЫБОР КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) > ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КОНЕЦ) КАК Период ПОМЕСТИТЬ ПоследнийПериодЦены ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( , ВидЦены В (ВЫБРАТЬ РАЗЛИЧНЫЕ ВидыЦен.Ссылка КАК ВидЦены ИЗ Справочник.ВидыЦен КАК ВидыЦен ГДЕ (ВидыЦен.Наименование = "БазоваяRUB" ИЛИ ВидыЦен.Наименование = "РасчетнаяUSDRUB" ИЛИ ВидыЦен.Наименование = "РасчетнаяEURRUB" ИЛИ ВидыЦен.Наименование = "НаценкаНаЗакупочнуюRUB"))) КАК ЦеныНоменклатурыСрезПоследних ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних( , Соглашение.ДоступноДляПродажиКлиентам И Соглашение.Валюта = &Валюта) КАК ЦеныНоменклатурыПоставщиковСрезПоследних ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура И ЦеныНоменклатурыСрезПоследних.Характеристика = ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика СГРУППИРОВАТЬ ПО ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура), ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Характеристика, ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика) ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПоследнийПериодЦены.Номенклатура КАК Номенклатура, ПоследнийПериодЦены.Характеристика КАК Характеристика, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена) КАК Цена, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта) КАК Валюта {ВЫБРАТЬ Номенклатура.*, Характеристика.*, Цена, Валюта.*} ИЗ ПоследнийПериодЦены КАК ПоследнийПериодЦены ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( , ВидЦены В (ВЫБРАТЬ РАЗЛИЧНЫЕ ВидыЦен.Ссылка КАК ВидЦены ИЗ Справочник.ВидыЦен КАК ВидыЦен ГДЕ (ВидыЦен.Наименование = "БазоваяRUB" ИЛИ ВидыЦен.Наименование = "РасчетнаяUSDRUB" ИЛИ ВидыЦен.Наименование = "РасчетнаяEURRUB" ИЛИ ВидыЦен.Наименование = "НаценкаНаЗакупочнуюRUB"))) КАК ЦеныНоменклатурыСрезПоследних ПО ПоследнийПериодЦены.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ПоследнийПериодЦены.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика И ПоследнийПериодЦены.Период = ЦеныНоменклатурыСрезПоследних.Период ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних( , Соглашение.ДоступноДляПродажиКлиентам И Соглашение.Валюта = &Валюта) КАК ЦеныНоменклатурыПоставщиковСрезПоследних ПО ПоследнийПериодЦены.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура И ПоследнийПериодЦены.Характеристика = ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика И ПоследнийПериодЦены.Период = ЦеныНоменклатурыПоставщиковСрезПоследних.Период {ГДЕ ПоследнийПериодЦены.Номенклатура.*, ПоследнийПериодЦены.Характеристика.*, (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена)) КАК Цена, (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта)).* КАК Валюта} |
|||
1
falselight
26.04.18
✎
10:36
|
Не пойму как поправить вот это условие что бы отбирался
только один вид цен "Прайс-лист". ВидЦены В (ВЫБРАТЬ РАЗЛИЧНЫЕ ВидыЦен.Ссылка КАК ВидЦены ИЗ Справочник.ВидыЦен КАК ВидыЦен ГДЕ (ВидыЦен.Наименование = "БазоваяRUB" ИЛИ ВидыЦен.Наименование = "РасчетнаяUSDRUB" ИЛИ ВидыЦен.Наименование = "РасчетнаяEURRUB" ИЛИ ВидыЦен.Наименование = "НаценкаНаЗакупочнуюRUB"))) КАК ЦеныНоменклатурыСрезПоследних |
|||
2
Lexey_
26.04.18
✎
10:40
|
(1) ну это же элементарно, ломать не строить, попробуй хоть раз подумать сам
|
|||
3
falselight
26.04.18
✎
10:42
|
(2) Так вот не могу (((((
Перепробовал всяко разно, но выбирает всегда не правильно (((( |
|||
4
PR
26.04.18
✎
10:44
|
Странная ветка
https://www.anekdot.ru/id/228589/ |
|||
5
falselight
26.04.18
✎
10:45
|
Вот делаю так, но он выбирает все подряд.
ВЫБРАТЬ ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура) КАК Номенклатура, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Характеристика, ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика) КАК Характеристика, МАКСИМУМ(ВЫБОР КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) > ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КОНЕЦ) КАК Период ПОМЕСТИТЬ ПоследнийПериодЦены ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( , ВидЦены = &ПрайсЛист ) КАК ЦеныНоменклатурыСрезПоследних ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних( , Соглашение.ДоступноДляПродажиКлиентам И Соглашение.Валюта = &Валюта) КАК ЦеныНоменклатурыПоставщиковСрезПоследних ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура И ЦеныНоменклатурыСрезПоследних.Характеристика = ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика СГРУППИРОВАТЬ ПО ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура), ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Характеристика, ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика) ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПоследнийПериодЦены.Номенклатура КАК Номенклатура, ПоследнийПериодЦены.Характеристика КАК Характеристика, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена) КАК Цена, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта) КАК Валюта {ВЫБРАТЬ Номенклатура.*, Характеристика.*, Цена, Валюта.*} ИЗ ПоследнийПериодЦены КАК ПоследнийПериодЦены ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( , ВидЦены = &ПрайсЛист ) КАК ЦеныНоменклатурыСрезПоследних ПО ПоследнийПериодЦены.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ПоследнийПериодЦены.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика И ПоследнийПериодЦены.Период = ЦеныНоменклатурыСрезПоследних.Период ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних( , Соглашение.ДоступноДляПродажиКлиентам И Соглашение.Валюта = &Валюта) КАК ЦеныНоменклатурыПоставщиковСрезПоследних ПО ПоследнийПериодЦены.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура И ПоследнийПериодЦены.Характеристика = ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика И ПоследнийПериодЦены.Период = ЦеныНоменклатурыПоставщиковСрезПоследних.Период {ГДЕ ПоследнийПериодЦены.Номенклатура.*, ПоследнийПериодЦены.Характеристика.*, (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена)) КАК Цена, (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта)).* КАК Валюта} |
|||
6
PR
26.04.18
✎
10:47
|
(5) И что? У тебя же полное соединение. А ты отбираешь только в одной таблице. Что не так-то?
|
|||
7
falselight
26.04.18
✎
10:55
|
(6) Как в одной таблице?
В итоговом запросе номенклатура с разными ценами, не нужными нужно только прайс лист, я просто не понимаю что нужно править. Думал достаточно условия вид цены. |
|||
8
falselight
26.04.18
✎
10:58
|
(6) сам запрос (0) отбирает 4 цены. Мне нужно только одну прайс-лист. Я всяко пробовал ничего не получилось....
|
|||
9
PR
26.04.18
✎
10:58
|
(7) Рукалицо
Еще раз, у тебя отбор только в первой таблице, во второй нету Что непонятного-то? |
|||
10
falselight
26.04.18
✎
10:59
|
(9) как это нету????? и в первой и во второй есть
|
|||
11
PR
26.04.18
✎
11:00
|
(10) Хорошо, ты победил, пусть будет по-твоему
|
|||
12
falselight
26.04.18
✎
11:01
|
(11) Я проиграл.
Результата не добился. |
|||
13
falselight
26.04.18
✎
11:01
|
Я делал по подобию как в (0) где там задается условие на 4 таблицы. Там и я задал на одну.
|
|||
14
PR
26.04.18
✎
11:02
|
(12) Это потому что нужно не спорить, а добавлять отбор во вторую таблицу соединения
|
|||
15
falselight
26.04.18
✎
11:09
|
(14) Я разве спорил? Я просто не виду.
|
|||
16
PR
26.04.18
✎
11:12
|
(15) Какое из слов в (6) тебе непонятно?
|
|||
17
shadow_sw
26.04.18
✎
11:14
|
(12) вот тут ветку можно закрывать
зы: вроде не пятница :) |
|||
18
systemstopper
26.04.18
✎
11:14
|
ПОЛНОЕ соединение некошерно юзать
|
|||
19
falselight
26.04.18
✎
11:15
|
(17) Да закрывайте признана проф непригодность!!!!
Подписываюсь.\ |
|||
20
falselight
26.04.18
✎
11:16
|
(18) Так оно же в оригинальном запросе, он же нормально выбирает только 4 цены. Мне нужно 1. Я его правлю на одну он все равно как попало выбирает.
|
|||
21
systemstopper
26.04.18
✎
11:18
|
(20) я имел в виду что не по стандартам это, пофиг че у тебя там выбирает
|
|||
22
falselight
26.04.18
✎
11:19
|
(21) Сам запрос не по стандартам?
|
|||
23
systemstopper
26.04.18
✎
11:20
|
(22) сам запрос у тебя вообще трэш
|
|||
24
falselight
26.04.18
✎
11:22
|
(16) Мне не понятно как править этот запрос что бы получить требуемое.
|
|||
25
falselight
26.04.18
✎
11:41
|
(23) Это не мой запрос!!!!!!!!!
|
|||
26
youalex
26.04.18
✎
11:54
|
(25) теперь твой
|
|||
27
falselight
26.04.18
✎
13:22
|
(26) Нет не мой, я ликвидировался.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |