Тут для офисных нужд понадобилось. Повтыкал в базу и сообразил такой вот запросик:
SELECT TBL1.IDN, TBL1.PDATEN, (TBL1.TOTAL - TBL2.TOTAL) AS TOTAL
FROM [
SELECT LAST(ID) AS IDN, LAST(PDATE) AS PDATEN, SUM(OUTRUR + OUTCUR) AS TOTAL
FROM Balance
WHERE
TYPE = 'A' AND (
ACCOUNT LIKE "319*" OR
ACCOUNT LIKE "320*" OR
ACCOUNT LIKE "321*" OR
ACCOUNT LIKE "322*" OR
ACCOUNT LIKE "323*" OR
ACCOUNT = 80000 ) OR
ACCOUNT = 80000
GROUP BY ID, PDATE
]. AS TBL1 INNER JOIN [
SELECT LAST(ID) AS IDN, LAST(PDATE) AS PDATEN, SUM(OUTRUR + OUTCUR) AS TOTAL
FROM Balance
WHERE
ACCOUNT = 80000
GROUP BY ID, PDATE
]. AS TBL2 ON (TBL1.PDATEN = TBL2.PDATEN) AND (TBL1.IDN = TBL2.IDN);
Ну и работало вроде замечательно. Это MS ACCESS естественно.
Но со временем база пухла и пухла и сейчас уже стали доставать с тем, что тормозит.
Проверил - действительно, на 100к записях порядка 10 секунд думает. Решил перевести всю базу на firebird.
Но вот не могу перестроить запросы. Никак не соображу как он с вложенными select работает. Я далеко не DBA, потому прошу помочь.
Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от Anoxemian

Ответ на:
комментарий
от svr69

Ответ на:
комментарий
от Anoxemian

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.