|
Объеденить два одинаковых запроса в один | ☑ | ||
---|---|---|---|---|
0
Дебет
12.10.15
✎
12:01
|
Весь день пытаюсь сделать то на что у профессионалов уходит минут 5. Прошу помощи профессионалов...
получаю одним запросом данные на начало и этим же запросом на конец периода, в итоге 2 запроса =( как в одном запросе объединить эти 2 , и еще разницу между ними сделать? ВЫБРАТЬ ПервоначальныеСведенияОССрезПоследних.Организация, ПервоначальныеСведенияОССрезПоследних.ОсновноеСредство КАК ОсновноеСредство, ЕСТЬNULL(ХозрасчетныйОстаткиСтоимость.СуммаОстатокДт, 0) КАК ТекущаяСтоимость, ЕСТЬNULL(ХозрасчетныйОстаткиАмортизация.СуммаОстатокКт, 0) КАК ТекущаяАмортизация, ЕСТЬNULL(ХозрасчетныйОстаткиСтоимость.СуммаОстатокДт, 0) - ЕСТЬNULL(ХозрасчетныйОстаткиАмортизация.СуммаОстатокКт, 0) КАК ОстаточнаяСтоимость, ВЫБОР КОГДА ЕСТЬNULL(ХозрасчетныйОстаткиСтоимость.СуммаОстатокДт, 0) <> 0 ИЛИ ЕСТЬNULL(ХозрасчетныйОстаткиАмортизация.СуммаОстатокКт, 0) <> 0 ИЛИ ЕСТЬNULL(ХозрасчетныйОстаткиСтоимость.СуммаОстатокДт, 0) - ЕСТЬNULL(ХозрасчетныйОстаткиАмортизация.СуммаОстатокКт, 0) <> 0 ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ЕстьПоказатели, СостоянияОСОрганизацийСрезПоследних.ДатаСостояния, СостоянияОСОрганизацийСрезПоследних.Состояние ИЗ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&ДатаОтчета, ) КАК ПервоначальныеСведенияОССрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СчетаБухгалтерскогоУчетаОС.СрезПоследних(&ДатаОтчета, ) КАК СчетаБухгалтерскогоУчетаОССрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтчета, , &ВидСубконтоОС, ) КАК ХозрасчетныйОстаткиСтоимость ПО СчетаБухгалтерскогоУчетаОССрезПоследних.СчетУчета = ХозрасчетныйОстаткиСтоимость.Счет И СчетаБухгалтерскогоУчетаОССрезПоследних.ОсновноеСредство = ХозрасчетныйОстаткиСтоимость.Субконто1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтчета, , &ВидСубконтоОС, ) КАК ХозрасчетныйОстаткиАмортизация ПО СчетаБухгалтерскогоУчетаОССрезПоследних.СчетНачисленияАмортизации = ХозрасчетныйОстаткиАмортизация.Счет И СчетаБухгалтерскогоУчетаОССрезПоследних.ОсновноеСредство = ХозрасчетныйОстаткиАмортизация.Субконто1 ПО ПервоначальныеСведенияОССрезПоследних.ОсновноеСредство = СчетаБухгалтерскогоУчетаОССрезПоследних.ОсновноеСредство ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияОСОрганизаций.СрезПоследних(&ДатаОтчета, ) КАК СостоянияОСОрганизацийСрезПоследних ПО ПервоначальныеСведенияОССрезПоследних.ОсновноеСредство = СостоянияОСОрганизацийСрезПоследних.ОсновноеСредство ГДЕ СостоянияОСОрганизацийСрезПоследних.Состояние = &Состояние {ГДЕ ПервоначальныеСведенияОССрезПоследних.Организация.*} |
|||
1
Ёпрст
12.10.15
✎
12:04
|
union all
|
|||
2
Ёпрст
12.10.15
✎
12:05
|
А разницу получишь, если в одном из запросов на минус один помножишь суммируемое поле.
|
|||
3
Ёпрст
12.10.15
✎
12:09
|
будет так
select Сумма(ЭтоХреньИзПервогоЗапроса), Сумма(ЭтоХреньИзВторогоЗапроса), Сумма(ЭтоХреньДляРазницы) from ( select Показатель Как ЭтоХреньИзПервогоЗапроса, 0 как ЭтоХреньИзВторогоЗапроса, Показатель ЭтоХреньДляРазницы from табличка_регистр_четамещеутебяестьНаДату union all select 0, Показатель, -Показатель from табличка_регистр_четамещеутебяестьНаДатуВторогоЗапроса ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |