|   |   | 
| 
 | Помогите с запросом | ☑ | ||
|---|---|---|---|---|
| 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) > а именно: не делать соединений с виртуальными таблицами никогда, только со временными
  даже если делается запрос по индексируемым полям ? | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |