Satans Claws писал(а) 06. Сентября 2011 :: 05:14: select
sum(ОстНаСкладе) ОстНаСкладе,
sum(ОстНаФирме) ОстНаФирме,
sum(РезервНаСкладе) РезервНаСкладе,
sum(РезервНаФирме) РезервНаФирме
From
(
SELECT
$РегОстатки.Количество ОстНаСкладе,
0 ОстНаФирме,
0 РезервНаСкладе,
0 РезервНаФирме
FROM
$РегистрИтоги.ОстаткиТМЦ as РегОстатки
WHERE
...
Union All
SELECT
0 ОстНаСкладе,
0 ОстНаФирме,
$РегРезервы.Количество РезервНаСкладе,
0 РезервНаФирме
FROM
$РегистрИтоги.РезервыТМЦ as РегРезервы
WHERE
...
Union all
...
)
Только вряд ли это будет быстрее.
Попробуй сделать скулевую реиндексацию + обнови статистику.
вот переделал вот в это не работает
ТекстЗапроса = "
|SELECT
| SUM(ОстНаСкладе) ОстНаСкладе,
| SUM(ОстНаФирме) ОстНаФирме,
| SUM(РезервНаСкладе) РезервНаСкладе,
| SUM(РезервНаФирме) РезервНаФирме,
| (ОстНаСкладе - РезервНаСкладе) ОстатокСклад,
| (ОстНаФирме - РезервНаФирме) ОстатокФирма
|FROM
|(SELECT
| $РегОстатки.Количество ОстНаСкладе,
| 0 ОстНаФирме,
| 0 РезервНаСкладе,
| 0 РезервНаФирме
|FROM
| $РегистрИтоги.ОстаткиТМЦ as РегОстатки
|WHERE
| РегОстатки.Period = :ВыбДата~~" + СтрокаФирмаУсловиеОстаток + " AND $РегОстатки.Номенклатура = :ВыбНоменкл " + СтрокаСкладУсловиеОстаток + "
|UNION ALL
|SELECT
| 0 ОстНаСкладе,
| $РегОстатки.Количество ОстНаФирме,
| 0 РезервНаСкладе,
| 0 РезервНаФирме
|FROM
| $РегистрИтоги.ОстаткиТМЦ as РегОстатки
|WHERE
| РегОстатки.Period = :ВыбДата~~" + СтрокаФирмаУсловиеОстаток + " AND $РегОстатки.Номенклатура = :ВыбНоменкл
|UNION ALL
|SELECT
| 0 ОстНаСкладе,
| 0 ОстНаФирме,
| $РегРезервы.Количество РезервНаСкладе,
| 0 РезервНаФирме
|FROM
| $РегистрИтоги.РезервыТМЦ as РегРезервы
|WHERE
| РегРезервы.Period = :ВыбДата~~" + СтрокаФирмаУсловиеРезерв + " AND $РегРезервы.Номенклатура = :ВыбНоменкл " + СтрокаФирмаУсловиеРезерв + "
|UNION ALL
|SELECT
| 0 ОстНаСкладе,
| 0 ОстНаФирме,
| $РегРезервы.Количество РезервНаСкладе,
| 0 РезервНаФирме
|FROM
| $РегистрИтоги.РезервыТМЦ as РегРезервы
|WHERE
| РегРезервы.Period = :ВыбДата~~" + СтрокаФирмаУсловиеРезерв + " AND $РегРезервы.Номенклатура = :ВыбНоменкл)
|";
Ошибка синтаксиса, но не могу понять где.