Aswed писал(а) 26. Ноября 2007 :: 08:02:Прочитал. Но как то не доходит до меня с групировкой этой грёбаной. Самого бесят уже эти прямые запросы.
Но всё таки подскажите, как сгрупировать этот запрос по Мол?
ТекстЗапроса = "
|SELECT
|Спр.ID as [асТовар $Справочник.Номенклатура],
|$Спр.Мол as [асМол $Справочник.Агенты],
|$Спр.МестоХранения as [асСклад $Справочник.МестаХранения],
|Спр.ParentID as [асГруппа $Справочник.Номенклатура],
|$Спр.чКодВТорговле as чКодВТорговле,
|$Спр.Производитель as [асПроизводитель $Справочник.Контрагенты],
|$Спр.ОстатФ as чСуммаРасход,
|$Спр.ДатаПоследРасх as дДатаПоследРасх,
|$Спр.ДатаПоследПрих as дДатаПоследПрих,
|
|FROM
|$Справочник.Номенклатура as Спр
|
|WHERE
|$Спр.Архивный = 0 AND
|Спр.IsMark = 0
|
|";
Итак, для начала что такое группировка. Немного теории.
GROUP BY - использует одно из полей множества результата для объединения в обобщенный столбец
Теперь на пальцах. Есть табличка Спр.Номенклатуры в которой:
| Row_ID | МОЛ | ОстатФ |
| 1 | Иванов | 5 |
| 2 | Петров | 3 |
| 3 | Иванов | 5 |
| 4 | Петров | 2 |
| 5 | Иванов | 5 |
Задача: Нужно сгруппировать по МОЛ и получить сумму ОстатФ
ТекстЗапроса = "
|SELECT
|$Спр.Мол as [асМол $Справочник.Агенты],
|SUM($Спр.ОстатФ) as чСуммаРасход,
|FROM
|$Справочник.Номенклатура as Спр
|GROUP BY $Спр.Мол |";
На выходе получим табличку
| асМол |чСуммаРасход |
| Иванов | 15 |
| Петров | 5 |
Итак в
выборке должны быть только те поля , кот. присутствуют в Group by или в обобщенных функциях (COUNT, MAX, MIN, SUM, AVG), иначе будет ошибка. Если и это для тебя сложно, то в сад
А вообще ты страшный лентяй, давно уже прочитал мини-руководство по SQL и не парил бы людям мозг.