|
Запрос | ☑ | ||
---|---|---|---|---|
0
polkin
17.03.12
✎
13:46
|
чувствую задницей, что не прав, но вот где - не пойму.
не могу свести в одну таблицу Номенклатуру, Номенклатуру с Характеристикой, и остатки....... "ВЫБРАТЬ | 0 КАК Продать, | 0 КАК Цена, | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.Описание, | ВложенныйЗапрос.ФайлКартинки, | ВложенныйЗапрос.Характеристика КАК Характеристика, | ВложенныйЗапрос.Заказано, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения, | ВложенныйЗапрос.СтавкаНДС |ИЗ | (ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.Описание КАК Описание, | ВложенныйЗапрос.ФайлКартинки КАК ФайлКартинки, | ВЫБОР | КОГДА ЗаказыПокупателейОстатки.КоличествоОстаток > 0 | ТОГДА ЗапасыНаСкладахОстатки.КоличествоОстаток - ЗаказыПокупателейОстатки.КоличествоОстаток | ИНАЧЕ ЗапасыНаСкладахОстатки.КоличествоОстаток | КОНЕЦ КАК Количество, | ВложенныйЗапрос.Характеристика КАК Характеристика, | ЗаказыПоставщикамОстатки.КоличествоОстаток КАК Заказано, | ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ВложенныйЗапрос.СтавкаНДС КАК СтавкаНДС | ИЗ | (ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.Описание КАК Описание, | ВложенныйЗапрос.ФайлКартинки КАК ФайлКартинки, | ХарактеристикиНоменклатуры.Ссылка КАК Характеристика, | ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ВложенныйЗапрос.СтавкаНДС КАК СтавкаНДС | ИЗ | (ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | Номенклатура.НаименованиеПолное КАК Описание, | Номенклатура.ФайлКартинки КАК ФайлКартинки, | Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | Номенклатура.СтавкаНДС КАК СтавкаНДС | ИЗ | Справочник.Номенклатура КАК Номенклатура | ГДЕ | Номенклатура.Родитель = &Родитель) КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры | ПО ВложенныйЗапрос.Номенклатура = ХарактеристикиНоменклатуры.Владелец) КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗапасыНаСкладах.Остатки КАК ЗапасыНаСкладахОстатки | ПО ВложенныйЗапрос.Номенклатура = ЗапасыНаСкладахОстатки.Номенклатура | И ВложенныйЗапрос.Характеристика = ЗапасыНаСкладахОстатки.Характеристика | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки | ПО ВложенныйЗапрос.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура | И ВложенныйЗапрос.Характеристика = ЗаказыПоставщикамОстатки.Характеристика | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки | ПО ВложенныйЗапрос.Номенклатура = ЗаказыПокупателейОстатки.Номенклатура | И ВложенныйЗапрос.Характеристика = ЗаказыПокупателейОстатки.Характеристика | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.Описание, | ВложенныйЗапрос.ФайлКартинки, | ВложенныйЗапрос.Количество, | NULL, | ВложенныйЗапрос.Заказано, | ВложенныйЗапрос.ЕдиницаИзмерения, | NULL | ИЗ | (ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.Описание КАК Описание, | ВложенныйЗапрос.ФайлКартинки КАК ФайлКартинки, | ЗаказыПоставщикамОстатки.КоличествоОстаток КАК Заказано, | ВЫБОР | КОГДА ЗаказыПокупателейОстатки.КоличествоОстаток > 0 | ТОГДА ЗапасыНаСкладахОстатки.КоличествоОстаток - ЗаказыПокупателейОстатки.КоличествоОстаток | ИНАЧЕ ЗапасыНаСкладахОстатки.КоличествоОстаток | КОНЕЦ КАК Количество, | ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения | ИЗ | (ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | Номенклатура.НаименованиеПолное КАК Описание, | Номенклатура.ФайлКартинки КАК ФайлКартинки, | Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения | ИЗ | Справочник.Номенклатура КАК Номенклатура | ГДЕ | Номенклатура.Родитель = &Родитель) КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки | ПО ВложенныйЗапрос.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗапасыНаСкладах.Остатки КАК ЗапасыНаСкладахОстатки | ПО ВложенныйЗапрос.Номенклатура = ЗапасыНаСкладахОстатки.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки | ПО ВложенныйЗапрос.Номенклатура = ЗаказыПокупателейОстатки.Номенклатура) КАК ВложенныйЗапрос) КАК ВложенныйЗапрос | |УПОРЯДОЧИТЬ ПО | Номенклатура, | Характеристика |ИТОГИ ПО | Номенклатура ТОЛЬКО ИЕРАРХИЯ |АВТОУПОРЯДОЧИВАНИЕ"; |
|||
1
AlexNew
17.03.12
✎
14:03
|
Запросы по ЗУПу изучал? Объединение, где характеристика не пустая и где пустая.
|
|||
2
Нуф-Нуф
17.03.12
✎
14:04
|
за вложенные запросы я бы руки отрубал
|
|||
3
Нуф-Нуф
17.03.12
✎
14:06
|
юзай временные запросы. и неипи честным людям мосх
|
|||
4
AlexNew
17.03.12
✎
14:08
|
(3) Зачем тут временные запросы?
|
|||
5
Нуф-Нуф
17.03.12
✎
14:18
|
(4) см (2)
|
|||
6
МихаилМ
17.03.12
✎
14:20
|
(0)
1) вынесите повторяющиеся соединения из обединения и группировок. 2) что это КАК ВложенныйЗапрос) КАК ВложенныйЗапрос - читать противно. 3) как допущено, что ЗаказыПокупателейОстатки.КоличествоОстаток < 0 |
|||
7
ptrtss
17.03.12
✎
14:20
|
Лучше в таком духе
"ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура, | Номенклатура.НаименованиеПолное КАК Описание, | ""Номенклатура.ФайлКартинки"" КАК ФайлКартинки, | ЕСТЬNULL(ХарактеристикиНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК ХарактеристикаНоменклатуры, | ""Номенклатура.ЕдиницаИзмерения"" КАК ЕдиницаИзмерения, | Номенклатура.СтавкаНДС КАК СтавкаНДС |ПОМЕСТИТЬ втНоменклатураИХарактеристики |ИЗ | Справочник.Номенклатура КАК Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры | ПО Номенклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец |ГДЕ | Номенклатура.Родитель = &Родитель |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.Описание КАК Описание, | ВложенныйЗапрос.ФайлКартинки КАК ФайлКартинки, | ВЫБОР | КОГДА ЗаказыПокупателейОстатки.КоличествоОстаток > 0 | ТОГДА ТоварыНаСкладахОстатки.КоличествоОстаток - ЗаказыПокупателейОстатки.КоличествоОстаток | ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток | КОНЕЦ КАК Количество, | ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ЗаказыПоставщикамОстатки.КоличествоОстаток КАК Заказано, | ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ВложенныйЗапрос.СтавкаНДС КАК СтавкаНДС |ИЗ | втНоменклатураИХарактеристики КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( | , | (Номенклатура, ХарактеристикаНоменклатуры) В | (ВЫБРАТЬ | т.Номенклатура, | т.ХарактеристикаНоменклатуры | ИЗ | втНоменклатураИХарактеристики КАК т)) КАК ТоварыНаСкладахОстатки | ПО ВложенныйЗапрос.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура | И ВложенныйЗапрос.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки( | , | (Номенклатура, ХарактеристикаНоменклатуры) В | (ВЫБРАТЬ | т.Номенклатура, | т.ХарактеристикаНоменклатуры | ИЗ | втНоменклатураИХарактеристики КАК т)) КАК ЗаказыПоставщикамОстатки | ПО ВложенныйЗапрос.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура | И ВложенныйЗапрос.ХарактеристикаНоменклатуры = ЗаказыПоставщикамОстатки.ХарактеристикаНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки( | , | (Номенклатура, ХарактеристикаНоменклатуры) В | (ВЫБРАТЬ | т.Номенклатура, | т.ХарактеристикаНоменклатуры | ИЗ | втНоменклатураИХарактеристики КАК т)) КАК ЗаказыПокупателейОстатки | ПО ВложенныйЗапрос.Номенклатура = ЗаказыПокупателейОстатки.Номенклатура | И ВложенныйЗапрос.ХарактеристикаНоменклатуры = ЗаказыПокупателейОстатки.ХарактеристикаНоменклатуры | |УПОРЯДОЧИТЬ ПО | Номенклатура, | ХарактеристикаНоменклатуры |ИТОГИ ПО | Номенклатура ТОЛЬКО ИЕРАРХИЯ |АВТОУПОРЯДОЧИВАНИЕ"; |
|||
8
AlexNew
17.03.12
✎
14:20
|
(5) См. текст задачи.
|
|||
9
Нуф-Нуф
17.03.12
✎
14:24
|
(8) пофигу. нет такой задачи в которой временный запрос уступил вложенному
|
|||
10
AlexNew
17.03.12
✎
14:24
|
Ты хочешь выбрать всю номенклатуру невзирая на остатки? Но это не самое страшное.
|
|||
11
AlexNew
17.03.12
✎
14:25
|
(9) Нет тут вложенных запросов.
|
|||
12
Нуф-Нуф
17.03.12
✎
14:29
|
(11) в сабже нет вложенных запросов?
|
|||
13
Нуф-Нуф
17.03.12
✎
14:29
|
автор. озвучь задачу.
|
|||
14
МихаилМ
17.03.12
✎
14:43
|
(9)
ошибаетесь планы запросов с ВТ имеют наименьший приоритет в кэше планов . сответственно для часто исползуемых запросов будет постояное престроение плана и статистик. фактически происходит навязвание плана исполнения. что и приводит к невозможности подстройки под текущюю нагрузку и рассмотрению для полного переанализа. |
|||
15
AlexNew
17.03.12
✎
14:56
|
Здесь нет ошибки? "сответственно для часто исползуемых запросов будет постояное престроение плана
и статистик. " |
|||
16
МихаилМ
17.03.12
✎
14:58
|
(15)
нет. тк речь про конкретно запросы с ВТ. |
|||
17
AlexNew
17.03.12
✎
15:10
|
(16) Мне кажется не будет? Могу быть не прав.
|
|||
18
МихаилМ
17.03.12
✎
15:20
|
(17)
лень сейчас проверять. но событие использование кэшированного плана СКОРЕЕ ВСЕГО можно посмотреть в профайлере. либо исполнить N раз на ненагруженной системе и посмотреть статистику создания планов. информация у меня старая из книги хэндерсона по скл 2000. читал на английском лет 6-7 назад. может скл 2005 .. 2012 поумнел в использовании ВТ. |
|||
19
polkin
17.03.12
✎
15:49
|
(13)
Вывести всю номенклатуру или номенклатуру + характеристики с остатками (даже если 0) |
|||
20
polkin
17.03.12
✎
15:52
|
(7) не работает.....
|
|||
21
Нуф-Нуф
17.03.12
✎
15:54
|
я стал сторонником ВТ после того как на курсах у Гончарова он озвучил последнюю позицию разработчиков платформы, что ВТ оптимальнее вложенных. запрос на временных гораздо легче воспринимается для чтения и для отладки. тогда как вложенные прочитать и отладить почти не реально.
кроме того то как 1с вложенные запросы переложит на запрос к БД - это совсем не очевидно, и часто это приводит к неоптимальным запросам |
|||
22
polkin
17.03.12
✎
15:59
|
(21) что выносить в ВТ?
|
|||
23
Нуф-Нуф
17.03.12
✎
16:04
|
(22) все что во вложенных
|
|||
24
AlexNew
17.03.12
✎
16:04
|
(13),(19) Тогда - да 3 ВТ.
|
|||
25
AlexNew
17.03.12
✎
16:06
|
Поторопился, Справочник номенклатура и 2 левых соединения.
|
|||
26
Нуф-Нуф
17.03.12
✎
16:14
|
всего одна ВТ
ВЫБРАТЬ ТаблицаНоменклатуры.Ссылка КАК Номенклатура, ХарактеристикиНоменклатуры.Ссылка КАК ХарактеристикаНоменклатуры ПОМЕСТИТЬ ВремТаблицаНоменклатуры ИЗ Справочник.Номенклатура КАК ТаблицаНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры ПО (ХарактеристикиНоменклатуры.Владелец = ТаблицаНоменклатуры.Ссылка) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВремТаблицаНоменклатуры.Номенклатура, ВремТаблицаНоменклатуры.ХарактеристикаНоменклатуры, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ ВремТаблицаНоменклатуры КАК ВремТаблицаНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО ВремТаблицаНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И ВремТаблицаНоменклатуры.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры |
|||
27
AlexNew
17.03.12
✎
16:20
|
(26) Еще и все характеристики без остатков?
|
|||
28
ptrtss
17.03.12
✎
16:22
|
(20)
Еще бы оно работало Просто вглядись, врубись и сделай в том же духе. Или тебе на блюдечке? |
|||
29
polkin
17.03.12
✎
16:31
|
(28) конечно на блюдечке. Врубиться оч тяжело....
|
|||
30
AlexNew
17.03.12
✎
16:38
|
(29) Куда врубаться - выкинуть.
|
|||
31
polkin
17.03.12
✎
16:52
|
http://s61.radikal.ru/i174/1203/7b/f2f2531ee9de.jpg
загрузил чего нужно моим кодом получаю такую табличку. но если номенклатура без характеристики - выводит 2 раза если номенклатура с характеристикой - выводит общую и с характеристикой просто номенклатуру (при наличии характеристики ASW-11D) выводить не нужно |
|||
32
polkin
17.03.12
✎
16:57
|
http://s001.radikal.ru/i195/1203/a1/3953f133f0a2.jpg
это хочу получить |
|||
33
polkin
17.03.12
✎
18:30
|
вымерли все что-ли?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |