|   |   | 
| 
 | Как доработать запрос | ☑ | ||
|---|---|---|---|---|
| 0
    
        VadimBahteev 01.02.13✎ 11:41 | 
        Есть вот такой запрос, как мне его доработать что бы КоличествоОстаток, проставлялось только по одной ЛЮБОЙ! строке номенклатуры, а не по каждой как сейчас?
  ВЫБРАТЬ схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(схПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, ХозрасчетныйОстатки.КоличествоОстаток ИЗ РегистрНакопления.схПродажи.Обороты(&Дата1, &Дата2, , ) КАК схПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , , ) КАК ХозрасчетныйОстатки ПО схПродажиОбороты.Номенклатура.Наименование = ХозрасчетныйОстатки.Субконто1.Наименование И схПродажиОбороты.ДокументПродажи.Склад.Наименование = ХозрасчетныйОстатки.Субконто3.Наименование ГДЕ схПродажиОбороты.Организация = &Организация И схПродажиОбороты.ДокументПродажи.Склад = &Склад И ХозрасчетныйОстатки.Субконто3 = &Склад СГРУППИРОВАТЬ ПО схПродажиОбороты.Номенклатура, схПродажиОбороты.Контрагент, схПродажиОбороты.КоличествоОборот, ХозрасчетныйОстатки.КоличествоОстаток УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ | |||
| 1
    
        VadimBahteev 01.02.13✎ 13:04 | 
        Есть варианты?     | |||
| 2
    
        salvator 01.02.13✎ 13:05 | 
        Че значит любой?     | |||
| 3
    
        VadimBahteev 01.02.13✎ 13:09 | 
        Ну вот выполни в консоле запросов, там получится что каждой строчке стоит остаток, мне надо что бы тольок в одной, любой по различным номенклатурам     | |||
| 4
    
        palpetrovich 01.02.13✎ 13:10 | 
        а это вообще работает?
  СГРУППИРОВАТЬ ПО схПродажиОбороты.КоличествоОборот | |||
| 5
    
        salvator 01.02.13✎ 13:12 | 
        (3) Я знаю. Я не понимаю слово "любой". Понимаю, "первой,"второй" и т.д.     | |||
| 6
    
        VadimBahteev 01.02.13✎ 13:12 | 
        Да     | |||
| 7
    
        VadimBahteev 01.02.13✎ 13:13 | 
        ну хорошо как сделать  в первой строке, по этой номенклатуре. в остальных пусто, в след номенклатуре опять в первой строке продажи     | |||
| 8
    
        Галахад гуру 01.02.13✎ 13:13 | 
        Как-то так, наверное:
  ВЫБРАТЬ схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, 0 ИЗ РегистрНакопления.схПродажи.Обороты(&Дата1, &Дата2, , ) КАК схПродажиОбороты объединить все ВЫБРАТЬ ХозрасчетныйОстатки.Номенклатура КАК Номенклатура, ХозрасчетныйОстатки.Контрагент, 0, СУММА(ХозрасчетныйОстатки.КоличествоОборот) КАК КоличествоОборот РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , , ) КАК ХозрасчетныйОстатки | |||
| 9
    
        VadimBahteev 01.02.13✎ 13:20 | 
        Совершенно два разных регистра     | |||
| 10
    
        VadimBahteev 01.02.13✎ 13:20 | 
        там нет одинаковых полей     | |||
| 11
    
        Галахад гуру 01.02.13✎ 13:22 | 
        А по каким ты соединяешь?     | |||
| 12
    
        VadimBahteev 01.02.13✎ 13:24 | 
        (11)  я про объединение     | |||
| 13
    
        Classic 01.02.13✎ 13:28 | 
        (0)
  Что это? | |||
| 14
    
        acsent 01.02.13✎ 13:29 | 
        (0) Вот это ПИ..ЗДЕЦ     | |||
| 15
    
        Classic 01.02.13✎ 13:32 | 
        (10)
  И чё? ВЫБРАТЬ ПервыйРегистр.ПолеСоединия, ПервыйРегистр.НужноеПоле1, ПервыйРегистр.НужноеПоле2, ......... NULL, NULL ИЗ ПервыйРегистр ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВторойРегистр.ПолеСоединения, NULL, NULL, .......... ВторойРегистр.Поле1, ВторойРегистр.Поле2 | |||
| 16
    
        sapphire 01.02.13✎ 13:33 | 
        (14) Впечатлил тебя ТС, да?     | |||
| 17
    
        sapphire 01.02.13✎ 13:34 | 
        ВЫБРАТЬ
  схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(схПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, SUM(ISNULL(ХозрасчетныйОстатки.КоличествоОстаток,0)) КоличествоОстаток ИЗ РегистрНакопления.схПродажи.Обороты(&Дата1, &Дата2, , ) КАК схПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , , ) КАК ХозрасчетныйОстатки ПО схПродажиОбороты.Номенклатура.Наименование = ХозрасчетныйОстатки.Субконто1.Наименование И схПродажиОбороты.ДокументПродажи.Склад.Наименование = ХозрасчетныйОстатки.Субконто3.Наименование ГДЕ схПродажиОбороты.Организация = &Организация И схПродажиОбороты.ДокументПродажи.Склад = &Склад И ХозрасчетныйОстатки.Субконто3 = &Склад СГРУППИРОВАТЬ ПО схПродажиОбороты.Номенклатура, схПродажиОбороты.Контрагент, // схПродажиОбороты.КоличествоОборот, // ХозрасчетныйОстатки.КоличествоОстаток УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ | |||
| 18
    
        YuPetr 01.02.13✎ 13:38 | 
        (0) Убери из группировок поля: схПродажиОбороты.КоличествоОборот,
  ХозрасчетныйОстатки.КоличествоОстаток а по полю ХозрасчетныйОстатки.КоличествоОстаток сделай сумму | |||
| 19
    
        sapphire 01.02.13✎ 13:59 | 
        (18) , а (17) мало?     | |||
| 20
    
        VadimBahteev 01.02.13✎ 14:04 | 
        Всяко перепробовал, не работает, наверно утопия изначально     | |||
| 21
    
        sapphire 01.02.13✎ 14:11 | 
        (20) А ну, конечно, конечно :)
  ВЫБРАТЬ схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(схПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, SUM(ISNULL(ХозрасчетныйОстатки.КоличествоОстаток,0)) КоличествоОстаток ИЗ РегистрНакопления.схПродажи.Обороты(&Дата1, &Дата2, , ) КАК схПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , , ) КАК ХозрасчетныйОстатки ПО схПродажиОбороты.Номенклатура = ХозрасчетныйОстатки.Субконто1 И схПродажиОбороты.ДокументПродажи.Склад = ХозрасчетныйОстатки.Субконто3 ГДЕ схПродажиОбороты.Организация = &Организация И схПродажиОбороты.ДокументПродажи.Склад = &Склад // И ХозрасчетныйОстатки.Субконто3 = &Склад СГРУППИРОВАТЬ ПО схПродажиОбороты.Номенклатура, схПродажиОбороты.Контрагент, // схПродажиОбороты.КоличествоОборот, // ХозрасчетныйОстатки.КоличествоОстаток УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ | |||
| 22
    
        sapphire 01.02.13✎ 14:16 | 
        И исчо можно часть отборов в параметры виртуально таблицы засунуть :)))     | |||
| 23
    
        VadimBahteev 01.02.13✎ 14:30 | 
        (22) Спасибо за старание, не реально не то что надо:)     | |||
| 24
    
        Baron Samedi 01.02.13✎ 14:34 | 
        (20) соединить с подзапросом
  левеое соединение ( выбрать Номенклатура, МАКСИМУМ(Контрагент) ) ИЗ <оттуда же> ) как ЛюбойКонтрагент по ЛюбойКонтрагент.Номенклатура = схПродажиОбороты.Номенклатура и ЛюбойКонтрагент.Контрагент = схПродажиОбороты.Контрагент Остаток выводить так: ВЫБОР КОГДА ЛюбойКонтрагент.Контрагент НЕ ЕСТЬ NULL ТОГДА ХозрасчетныйОстатки.КоличествоОстаток КОНЕЦ | |||
| 25
    
        VadimBahteev 01.02.13✎ 14:44 | 
        (24) не понял что то     | |||
| 26
    
        Baron Samedi 01.02.13✎ 19:32 | 
        (25) 
  ВЫБРАТЬ схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.ДоговорКонтрагента.Владелец,//схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(схПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, ХозрасчетныйОстатки.КоличествоОстаток, ВЫБОР КОГДА КонтрагентПодходит.ТакиДа ТОГДА ХозрасчетныйОстатки.КоличествоОстаток КОНЕЦ как ИногдаОстаток ИЗ РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , ДоговорКонтрагента.Организация = &Организация //схПродажиОбороты.Организация = &Организация И ДокументПродажи.Склад = &Склад ) КАК схПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , &МассивВидыСубконтоНоменклатураИСклады, Субконто2 = &Склад) КАК ХозрасчетныйОстатки ПО схПродажиОбороты.Номенклатура = ХозрасчетныйОстатки.Субконто1 И схПродажиОбороты.ДокументПродажи.Склад = ХозрасчетныйОстатки.Субконто2 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Истина как ТакиДа) как КонтрагентПодходит ПО ( схПродажиОбороты.Номенклатура, схПродажиОбороты.ДоговорКонтрагента.Владелец //схПродажиОбороты.Контрагент ) В ( ВЫБРАТЬ Номенклатура, Максимум(ДоговорКонтрагента.Владелец) //Максимум(Конрагент) ИЗ РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , ДоговорКонтрагента.Организация = &Организация //схПродажиОбороты.Организация = &Организация И ДокументПродажи.Склад = &Склад ) СГРУППИРОВАТЬ ПО Номенклатура ) СГРУППИРОВАТЬ ПО схПродажиОбороты.Номенклатура, схПродажиОбороты.ДоговорКонтрагента.Владелец,//схПродажиОбороты.Контрагент, КонтрагентПодходит.ТакиДа, ХозрасчетныйОстатки.КоличествоОстаток УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ | |||
| 27
    
        Baron Samedi 01.02.13✎ 19:36 | 
        (26)
  - Чтобы проверить на своей базе заменил регистр схПродажи на Продажи. Не сочтите за труд поменять обратно - пользуйте фильтры в параметрах виртуальных таблиц, и будет счастье - пользуйте массив видов субконто в параметрах вирт.таблиц регистров бухгалтерии. С номерами субконто ясности и скорости будет больше в 10 раз. P.S. Надежнее и прямее делать через ОБЪЕДИНИТЬ ВСЕ, но тогда в строке с бух. остатком не будет оборота по продажам. Как и контрагента, что правильно. Не делится остаток на складе по покупателям. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |