Доброе время суток!
Вообще вопрос не столько по 1с++, сколько по SQL.
В общем есть у меня данные по дисконтым картам и суммам, поступившим на эти карты в разрезе дат.
Например, на карту "А001" 01 числа поступило 600 руб, 02 числа - 800, 03 числа - 300.
Нужно получить выборку в которой данные будут представлены в следующем виде:
А001 | 01/01/09 | 600
А001 | 02/01/09 | 1400
А001 | 03/01/09 | 1700
Т.е. нужны данные по нарастающей.
Пытался решить вопрос используя вложенный запрос, но получилась фигня.
Запрос мой выглядит примерно так:
SELECT
Журнал.Date as ДатаДок,
спрКарты.ID as [ИсточникСкидки $Справочник.Карточки],
SUM($ЗакрТаб.Количество) as Количество,
SUM(ВложенныйЗапрос.количество) as Количество1
FROM
1SJOURN as Журнал
LEFT JOIN $ДокументСтроки.ЗакрытиеСменыРеализация as ЗакрТаб ON ЗакрТаб.IDDoc = Журнал.IDDoc
LEFT JOIN $Справочник.Карточки as спрКарты ON спрКарты.ID = TRIM(RIGHT($ЗакрТаб.ИсточникСкидки,17))
LEFT JOIN (
SELECT
Журнал.Date as ДатаДок,
спрКарты.ID,
SUM($ЗакрТаб.Количество) as Количество
FROM
1SJOURN as Журнал
LEFT JOIN $ДокументСтроки.ЗакрытиеСменыРеализация as ЗакрТаб ON ЗакрТаб.IDDoc = Журнал.IDDoc
LEFT JOIN $Справочник.Карточки as спрКарты ON спрКарты.ID = TRIM(RIGHT($ЗакрТаб.ИсточникСкидки,17))
WHERE
Журнал.Date BETWEEN :ДатаНачала~~ AND :ДатаКонца~~
AND Журнал.IDDocDef = $ВидДокумента.ЗакрытиеСменыРеализация
AND спрКарты.ID IS NOT NULL
GROUP BY
Журнал.Date,
спрКарты.ID
) as ВложенныйЗапрос ON ВложенныйЗапрос.ID = спрКарты.ID AND ВложенныйЗапрос.ДатаДок <= Журнал.Date
WHERE
Журнал.Date BETWEEN :ДатаНачала~~ AND :ДатаКонца~~
AND Журнал.IDDocDef = $ВидДокумента.ЗакрытиеСменыРеализация
AND спрКарты.ID IS NOT NULL
GROUP BY
Журнал.Date,
спрКарты.ID