|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
breezee
23.04.15
✎
11:09
|
Есть 1 физическая таблица(табличная часть док-та) в которой 60 позиций номенклатуры и вторая(вирутальная) в которой эти же 60 позиций + 2 которые в первой раны NULL, как мне получить 62 позиции из первой таблицы с нулл парметром (другой парамтр заполнен). Я совсем запутался, получаю либо 106, илбо 108, либо вообще 3728, в зависимости от левого или правого или полного соединения, соединяю по номенклатуре таблицы. Подскажите, пожалуйста, без повторяющихся не работает, потому что там поле неорганиченной длины пишет.
|
|||
1
Vladal
23.04.15
✎
11:12
|
> потому что там поле неорганиченной длины пишет.
Напиши в запросе ВЫРАЗИТЬ(ПолеНеограниченнойДлины КАК Строка 1000) Должно помочь. |
|||
2
breezee
23.04.15
✎
11:17
|
(1) Да, помогло, спасибо. только теперь 44 и 46 в зависимости от соеднения позиций выводятся, вариант с различными не подходит
|
|||
3
fishb1
23.04.15
✎
11:21
|
Соединением сложно, а объединением с группировкой по номенклатуре и отбором по "Не Номенклатура ЕСТЬ NULL" можно.
|
|||
4
breezee
23.04.15
✎
11:31
|
(1) Еще раз спасибо, это я не правильно написал, там было 46 все же. Сейчас все проверю еще раз
|
|||
5
Vladal
23.04.15
✎
11:36
|
Прими в дар шпаргалку по соединениям. без-воз-мез-дно
http://s020.radikal.ru/i705/1504/3a/182584658044.png |
|||
6
breezee
23.04.15
✎
11:42
|
(5) Спасибо. Все же у меня 62 записи, я запутался, не одно из таблицы мне не подходит, подскажи что делать пожалуйста.
|
|||
7
AntonH851
23.04.15
✎
11:47
|
(6) Покажи текст запроса
|
|||
8
breezee
23.04.15
✎
11:50
|
(7) ВЫБРАТЬ
ЗаказПоставщикуТовары.Сумма, ЗаказПоставщикуТовары.Количество, ЗаказПоставщикуТовары.Цена, ЗаказПоставщикуТовары.Номенклатура.Артикул КАК Артикул, ЗаказПоставщикуТовары.Номенклатура, ЗаказПоставщикуТовары.Номенклатура.Родитель КАК НоменклатураРодитель, ЗаказПоставщикуТовары.Ссылка, НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента КАК НаименованиеНоменклатуры ПОМЕСТИТЬ ррр ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО (НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщикуТовары.Номенклатура) ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ррр.Сумма, ррр.Количество, ррр.Цена, ррр.Артикул, ррр.Номенклатура, ррр.НоменклатураРодитель, ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, 0) КАК Значение, ЗначенияСвойствОбъектов.Свойство, ррр.Ссылка, ррр.НаименованиеНоменклатуры ПОМЕСТИТЬ ккк ИЗ ррр КАК ррр ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ррр.Номенклатура = ЗначенияСвойствОбъектов.Объект ГДЕ ЗначенияСвойствОбъектов.Свойство.Наименование = "Наименование (англ)" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ккк.Свойство, ккк.Значение КАК Значение, ЗаказПоставщикуТовары.Номенклатура, ЗаказПоставщикуТовары.Номенклатура.Артикул, ЗаказПоставщикуТовары.Сумма, ЗаказПоставщикуТовары.Цена, ЗаказПоставщикуТовары.Количество, ккк.НаименованиеНоменклатуры ПОМЕСТИТЬ ПустыеЗначения ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ ккк КАК ккк ПО ЗаказПоставщикуТовары.Номенклатура = ккк.Номенклатура ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПустыеЗначения.Свойство, ПустыеЗначения.Значение КАК Значение, ПустыеЗначения.Номенклатура КАК Номенклатура, ПустыеЗначения.НоменклатураАртикул, ПустыеЗначения.Сумма, ПустыеЗначения.Цена, ПустыеЗначения.Количество, ЕСТЬNULL(ПустыеЗначения.НаименованиеНоменклатуры, ПустыеЗначения.Номенклатура.Наименование) КАК НаименованиеНоменклатуры ИЗ ПустыеЗначения КАК ПустыеЗначения ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО ПустыеЗначения.Номенклатура = НоменклатураКонтрагентов.Номенклатура УПОРЯДОЧИТЬ ПО Значение ИТОГИ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура) ПО ОБЩИЕ |
|||
9
Ёпрст
23.04.15
✎
11:56
|
Чего надо то, в целом ?
|
|||
10
Ёпрст
23.04.15
✎
11:56
|
Зачем по сто раз одно и тоже соединять ?
|
|||
11
Ёпрст
23.04.15
✎
11:58
|
ну и это..
ГДЕ ЗначенияСвойствОбъектов.Свойство.Наименование = "Наименование (англ)" тут ты своим условием левое соединение превратил во внутреннее, если че. |
|||
12
breezee
23.04.15
✎
11:58
|
(10) Надо чтобы подтягивалось для номенклатуры её свойство из регистра свойств и её наименование из регистра наименование поставщика
|
|||
13
ЧеловекДуши
23.04.15
✎
11:58
|
(8) Каша
|
|||
14
Ёпрст
23.04.15
✎
12:00
|
(12) и ?
Делай всё в одном запросе, нахрена тебе такое количество временных табличек для этого ? |
|||
15
ЧеловекДуши
23.04.15
✎
12:07
|
(12) Используй характеристики
|
|||
16
ЧеловекДуши
23.04.15
✎
12:08
|
||||
17
breezee
23.04.15
✎
13:16
|
Все равно ни черта не понимаю. ДА, я идиот дурак и т.д.,
Вот у меня есть таблица я её делаю левым соединением ко второй - в результирующее таблице будет столько же строчек, с одной таблицей работает(с наименованием номенклатуры), а с другой таблицей (со свойствами объектов) - появляются новые записи Вот запрос ВЫБРАТЬ ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО ЗаказПоставщикуТовары.Номенклатура = НоменклатураКонтрагентов.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ЗаказПоставщикуТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент ИТОГИ КОЛИЧЕСТВО(Номенклатура) ПО ОБЩИЕ |
|||
18
breezee
23.04.15
✎
13:26
|
А если ставлю условие - получается меньше записей. Как правая таблица в левом соединении может менять количество записей?
|
|||
19
ЧеловекДуши
23.04.15
✎
13:30
|
(17) РегистрСведений.ЗначенияСвойствОбъектов
Как правило: 1. имеет составной тип, так что лучше писать с отбором по типу "ЗначенияСвойствОбъектов.Объект ссылка Справочник.ТвойСправочник" 2. Там Куева туча свойств, а в данном примере ты выбираешь все, а тебе надо все? :) |
|||
20
ЧеловекДуши
23.04.15
✎
13:30
|
(18) Сколько элементов, столько и связей
|
|||
21
GenAcid
23.04.15
✎
13:31
|
(18) легко и непринужденно
таб 1 элемент1 элемент2 таб2 элемент1 2 элемент1 7 элемент2 9 элемент3 1 как думаешь что будет если выбрать данные из таб1 и соединить их с таб2? |
|||
22
breezee
23.04.15
✎
13:33
|
(19) Спасибо, нет, только 1 св-во, только когда его делаю сильно режется количество номенклатуры, пытался экспеременитровать)
элемент1 2 элемент1 7 элемент2 9 элемент3 1 Так? Но у меня же существующие значения в первой таблице а не NULL |
|||
23
breezee
23.04.15
✎
13:36
|
(19) Когда ставлю значение номенклатуры - ставится обратно на объект, свойства мне в условиях ставить? Они не будут ограничивать выборку?
|
|||
24
breezee
23.04.15
✎
13:40
|
Да что за фигня? Если я хочу просто выбрать все поля из левой таблицы и найти для них соотвествие в правой то я должен поставить условие и выбрать левое соединение. Где я не прав?
|
|||
25
breezee
23.04.15
✎
13:43
|
Без повторяющихся 65 - это близко но всё же не 62. Кстати, если я буду использовать повторяющиеся и попадется 2 одинаковых записи тч - одна удалится, или это сделано ка раз для случаев как у меня? И все же почему 65?
|
|||
26
GenAcid
23.04.15
✎
13:45
|
Подумай над (19) проблема скорее всего в этом.
|
|||
27
GenAcid
23.04.15
✎
13:50
|
(26) Хотя я твой запрос посмотрел, не должно быть в этом проблемы.
|
|||
28
breezee
23.04.15
✎
13:55
|
Всем спасибо. В общем сделал так - в пером запросе выбрал без посторяющихся и совмести с тч документа - все вышло, хотя я так и не понял что без этого не работало
Может кому пригодится ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура, ЗначенияСвойствОбъектов.Объект, ЗначенияСвойствОбъектов.Значение ПОМЕСТИТЬ ррр ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО ЗаказПоставщикуТовары.Номенклатура = НоменклатураКонтрагентов.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ЗаказПоставщикуТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент И ЗначенияСвойствОбъектов.Свойство.Наименование = "Наименование (англ)" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура, ррр.Номенклатура КАК Номенклатура1, ррр.Значение КАК Значение ИЗ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары ЛЕВОЕ СОЕДИНЕНИЕ ррр КАК ррр ПО (ррр.Номенклатура = ЗаказПоставщикуТовары.Номенклатура) ГДЕ ЗаказПоставщикуТовары.Ссылка = &ТекущийДокумент ИТОГИ КОЛИЧЕСТВО(Номенклатура), КОЛИЧЕСТВО(Номенклатура1), КОЛИЧЕСТВО(Значение) ПО ОБЩИЕ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |