Суммирование двух запросов!

maxwell1988
Дата: 19.06.2009 23:11:53
Помогите пожалуйста построить запрос SQL. БД Paradox, среда Delphi.

Доброго времени суток!

нужна помощь...

есть два запроса, результаты этих запросов - суммы, надо эти две суммы сложить!


SELECT Summa_sdana.Driver, SUM(Summa_sdana.Summa_sdal)
FROM Driver INNER JOIN Summa_sdana ON Driver.Id_driver=Summa_sdana.driver
GROUP BY Summa_sdana.Driver

union

SELECT Zakaz.Driver, SUM(Zakaz.Summa)*Stavka.Procent
FROM List INNER JOIN Zakaz ON List.Id_list = Zakaz.List ,Stavka
GROUP BY Stavka.Summa_ot, Stavka.Summa_do, Zakaz.Driver
HAVING SUM(Zakaz.Summa) BETWEEN Summa_ot AND Summa_do
;

делаю так, но понятно дело, что у меня получается, подобное этому....

driver SUM
1 500
1 300
2 100
2 300
3 100
3 200

а нужно, чтобы получилось...вот так

driver SUM
1 800
2 400
3 300



з.ы. прошу сильна не ругать, я новичок....но есть желание учиться)))
maxwell1988
Дата: 19.06.2009 23:13:50
точнее...

SELECT Summa_sdana.Driver, SUM(Summa_sdana.Summa_sdal)
FROM Driver INNER JOIN Summa_sdana ON Driver.Id_driver=Summa_sdana.driver
GROUP BY Summa_sdana.Driver

union

SELECT Zakaz.Driver, SUM(Zakaz.Summa)*Stavka.Procent
FROM List INNER JOIN Zakaz ON List.Id_list = Zakaz.List ,Stavka
GROUP BY Stavka.Summa_ot, Stavka.Summa_do, Zakaz.Driver, Stavka.Procent
HAVING SUM(Zakaz.Summa) BETWEEN Summa_ot AND Summa_do
;
FlyD
Дата: 19.06.2009 23:21:30
А при чем здесь Delphi?
maxwell1988
Дата: 19.06.2009 23:25:29
FlyD,

реализовывается в делфи))
FlyD
Дата: 19.06.2009 23:29:39
maxwell1988
FlyD,

реализовывается в делфи))
Построение запроса в контексте топика к Delphi отношения не имеет.
Обратитесь в соответствующий форум.
maxwell1988
Дата: 19.06.2009 23:32:01
FlyD,

сорри
FlyD
Дата: 19.06.2009 23:32:54
По сабжу.
В представленном коде отработка идет по схеме группировка -> объединение. Поменяй
порядок.
maxwell1988
Дата: 19.06.2009 23:37:20
FlyD,

"по схеме группировка -> объединение" - наоборот, это как? сорри, новичок...
FlyD
Дата: 19.06.2009 23:49:20
Ну где то так
SELECT t.Driver, SUM(t.MySum)
FROM 
(
  SELECT Summa_sdana.Driver, SUM(Summa_sdana.Summa_sdal) as MySum
  FROM Driver INNER JOIN Summa_sdana ON Driver.Id_driver=Summa_sdana.driver
  GROUP BY Summa_sdana.Driver

  union all -- обязательно ALL !!!

  SELECT Zakaz.Driver, SUM(Zakaz.Summa)*Stavka.Procent as MySum
  FROM List INNER JOIN Zakaz ON List.Id_list = Zakaz.List ,Stavka
  GROUP BY Stavka.Summa_ot, Stavka.Summa_do, Zakaz.Driver, Stavka.Procent
  HAVING SUM(Zakaz.Summa) BETWEEN Summa_ot AND Summa_do

) t
group by Driver
maxwell1988
Дата: 19.06.2009 23:53:53
FlyD,

пишит sql explorer >>>

Invalid use of keyword.
Token : SELECT
Line Number : 4

((((((((