|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
prorokk
18.04.13
✎
12:36
|
День добрый Уважаемые! помогите с запросом
ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&датаН, &датаК, Месяц, , ) КАК ТоварыНаСкладахОстаткиИОбороты не могу понять как прикрутить сюда цены (рег. сведений) что-бы выводились на начало и конец периода |
|||
1
zak555
18.04.13
✎
12:37
|
двумя левыеми
|
|||
2
Wobland
18.04.13
✎
12:37
|
прикручивай две таблицы про цены на дату
|
|||
3
lopus
18.04.13
✎
12:38
|
Смотри запрос в УТ 11 торг 29
|
|||
4
wise
18.04.13
✎
12:39
|
скажи ХОТЬ, что ХОЧЕШЬ иметь на выходе...
p.s. а ЛУЧШЕ просто задачу ОЗВУЧЬ. |
|||
5
prorokk
18.04.13
✎
12:43
|
(4) Задача такая
нужно за указанный период в ТЗ вывести Номенклатура КоличествоНачало КоличествоКонец ЦенаН ЦенаК при условии что ЦенаН <> ЦенаК |
|||
6
prorokk
18.04.13
✎
12:47
|
По левому получилось
ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток, ЦеныНоменклатурыКонец.Цена КАК ЦенаНачало, ЦеныНоменклатурыНачало.Цена КАК ЦенаКонец ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&датаН, &датаК, Месяц, , ) КАК ТоварыНаСкладахОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыНачало ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Ссылка = ЦеныНоменклатурыНачало.Номенклатура.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыКонец ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Ссылка = ЦеныНоменклатурыКонец.Номенклатура.Ссылка а в ТЗ одна и та-же позиция по 15 раз. |
|||
7
1Сергей
18.04.13
✎
12:48
|
(6) в РегистрСведений.ЦеныНоменклатуры не одно ведь измерение, правда?
|
|||
8
Рэйв
18.04.13
✎
12:49
|
(6)
....РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаН) ....РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаК) |
|||
9
prorokk
18.04.13
✎
12:49
|
(7) да да да... позабыл...
|
|||
10
prorokk
18.04.13
✎
13:01
|
(8) Спасибо не подумал про СрезПоследних и дату
|
|||
11
prorokk
18.04.13
✎
13:04
|
Итак получилось
ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток, ЦеныНоменклатурыСрезПоследнихНачало.Цена КАК ЦенаНачало, ЦеныНоменклатурыСрезПоследнихКонец.Цена КАК ЦенаКонец ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаН, &ДатаК, Месяц, , ) КАК ТоварыНаСкладахОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаН, ТипЦен = &Тип) КАК ЦеныНоменклатурыСрезПоследнихНачало ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Ссылка = ЦеныНоменклатурыСрезПоследнихНачало.Номенклатура.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаК, ТипЦен = &Тип) КАК ЦеныНоменклатурыСрезПоследнихКонец ПО (ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Ссылка = ЦеныНоменклатурыСрезПоследнихНачало.Номенклатура.Ссылка) Но жутко медленно формируется А Возможно ли в Запросе прописать условие ЦенаН<>ЦенаК |
|||
12
zak555
18.04.13
✎
13:07
|
(11) не используй таблицу ОстаткиИОбороты -- используй только остатки
|
|||
13
1Сергей
18.04.13
✎
13:08
|
(11) >>А Возможно ли в Запросе прописать условие ЦенаН<>ЦенаК
Да |
|||
14
prorokk
18.04.13
✎
13:15
|
(12) А как с началом и концом Периода?
(13) Можно пример? |
|||
15
prorokk
18.04.13
✎
13:19
|
жуткое торможение Вылечил...
|
|||
16
prorokk
18.04.13
✎
13:21
|
(13)
ГДЕ ЦеныНоменклатурыСрезПоследнихНачало.Цена <> ЦеныНоменклатурыСрезПоследнихКонец.Цена"; так не сильно Позорно? |
|||
17
zak555
18.04.13
✎
13:27
|
ВЫБРАТЬ
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоНачальныйОстаток, ТоварыНаСкладахОстатки.Номенклатура ПОМЕСТИТЬ ОстаткиНаНачало ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаН, ) КАК ТоварыНаСкладахОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЕСТЬNULL(ТоварыНаСкладахОстатки.Номенклатура, ОстаткиНаНачало.Номенклатура) КАК Номенклатура, ОстаткиНаНачало.КоличествоНачальныйОстаток, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоКонечныйОстаток ИЗ ОстаткиНаНачало КАК ОстаткиНаНачало ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&датаК, ) КАК ТоварыНаСкладахОстатки ПО ОстаткиНаНачало.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура |
|||
18
zak555
18.04.13
✎
13:33
|
хотя временная таблица наверное ненужна
ВЫБРАТЬ ЕСТЬNULL(ТоварыНаСкладахОстаткиНач.Номенклатура, ТоварыНаСкладахОстаткиКон.Номенклатура) КАК Номенклатура, ТоварыНаСкладахОстаткиНач.КоличествоОстаток КАК КоличествоНачальныйОстаток, ТоварыНаСкладахОстаткиКон.КоличествоОстаток КАК КоличествоКонечныйОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаН, ) КАК ТоварыНаСкладахОстаткиНач ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаК, ) КАК ТоварыНаСкладахОстаткиКон ПО ТоварыНаСкладахОстаткиНач.Номенклатура = ТоварыНаСкладахОстаткиКон.Номенклатура |
|||
19
1Сергей
18.04.13
✎
13:35
|
(16) вполне нормально
|
|||
20
Steini
18.04.13
✎
13:37
|
наоборот, рекомендуется все три виртуальные таблицы разнести по временным таблицам - потом уже их все соединить - выйгрыш по времени для больших таблиц будет колосальный
|
|||
21
zak555
18.04.13
✎
13:38
|
(20) да ?
|
|||
22
Steini
18.04.13
✎
13:39
|
(21) пруф не скину, но такая рекомендация есть, а именно: не делать соединений с виртуальными таблицами никогда, только со временными
|
|||
23
1Сергей
18.04.13
✎
13:40
|
(22) у меня на постгре финты с ВТ не срабатывали, но соглашусь с Вами
|
|||
24
prorokk
18.04.13
✎
13:54
|
Всем Спасибо)
|
|||
25
zak555
18.04.13
✎
14:06
|
(22) > а именно: не делать соединений с виртуальными таблицами никогда, только со временными
даже если делается запрос по индексируемым полям ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |