Topic: Возможно ли в данном скрипте вычесть одно значение из другого

Здравствуйте.
Есть кнопка при нажатии на которую выбираются значения в столбцы t1 (Max) и t2 (Min)

frmOth1.Button16.dbSQL :=  ' SELECT sch.id_print, '+
                                ' (SELECT max(sch) from sch t1 where (t1.id_print = sch.id_print)), '+
                                ' (SELECT min(sch) from sch t2 where (t2.id_print = sch.id_print)) '+
                                ' from sch '+
                                ' group BY id_print ';

Можно ли в данном скрипте провести математические вычисления t3=t1-t2?
Если да, то как это проще сделать?

Re: Возможно ли в данном скрипте вычесть одно значение из другого

Используйте подзапрос:

SELECT id_print, t1, t2, (t1 - t2) as t3 from
(
SELECT sch.id_print
   (SELECT max(sch) from sch t1 where (t1.id_print = sch.id_print)),
   (SELECT min(sch) from sch t2 where (t2.id_print = sch.id_print))
from sch 
group BY id_print 
)

Вот только не понятно, что вам даст Group_by...

Визуальное программирование: блог и телеграм-канал.

Re: Возможно ли в данном скрипте вычесть одно значение из другого

k245 wrote:

Вот только не понятно, что вам даст Group_by...

Спасибо проверю.
Если не ставлю группировку по id_print, выводятся все строки какие есть у данного id_print, только заполняются max (например 200) и min (например 100) значениями

id_print            t1 (max)                  t2(min)
11                   200                         100
11                   200                         100
11                   200                         100
11                   200                         100

Если ставлю группировку по id_print, выводится по одной строке
id_print            t1 (max)                  t2(min)
11                   200                         100

Re: Возможно ли в данном скрипте вычесть одно значение из другого

OK, главное, чтобы вас устаивал результат )))

Визуальное программирование: блог и телеграм-канал.

Re: Возможно ли в данном скрипте вычесть одно значение из другого

рабочий вариант

' SELECT sch.id_print, '+
                                ' (SELECT max(sch) from sch t1 where (t1.id_print = sch.id_print) and (t1.id_priznzam = 1)), '+
                                ' (SELECT min(sch) from sch t2 where (t2.id_print = sch.id_print) and (t2.id_priznzam = 1)), '+
                                ' (SELECT  ((SELECT max(sch) from sch t1 where (t1.id_print = sch.id_print) and (t1.id_priznzam = 1)) - (SELECT min(sch) from sch t2 where (t2.id_print = sch.id_print) and (t2.id_priznzam = 1))) as t3) '+
                                ' from sch '+
                                ' group BY id_print ';