Cee08 Ответов: 1

Как вычесть сумму столбца из столбца другой таблицы


Как вычесть сумму столбца из столбца другой таблицы

Что я уже пробовал:

SELECT requestformtbl.employee_name, requestformtbl.request_type, requestformtbl.total_day,
                requestformtbl.request_status, requestformtbl.admin_remark, requestformtbl.confirmed_by, requestformtbl.date_confirmed, requesttbl.max_allotment,
                (requesttbl.max_allotment - sum(requestformtbl.total_day)) as Available from requestformtbl inner join requesttbl on 
                requestformtbl.request_type = requesttbl.request_type;


error: Column 'requestformtbl.employee_name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.


Please help, thank you!

1 Ответов

Рейтинг:
10

Visweswaran N

Я не знаю что делают другие но мне это нравится:

Я создал две такие таблицы

create table if not exists table1(t1_col1 int);


create table if not exists table2(t2_col1 int);


и я вставил четыре примерных значения в таблицу 1 Вот так,

insert into table1 values(1), (2), (3), (4);


и два примерных значения в таблице 2, как это

insert into table2 values(1), (2);


Теперь давайте посмотрим, как вычесть сумму col1 таблицы 2 с каждым значением в col1 таблицы 1

select t1_col1 as original, (select sum(t2_col1) from table2) as sum, t1_col1-(select sum(t2_col1) from table2) as result from table1;


и я получаю такой результат,

+----------+------+--------+
| original | sum  | result |
+----------+------+--------+
|        1 |    3 |     -2 |
|        2 |    3 |     -1 |
|        3 |    3 |      0 |
|        4 |    3 |      1 |
+----------+------+--------+




Или если вы хотите вычесть сумму с суммой

select sum(t1_col1) - (select sum(t2_col1) from table2) as difference from table1;


что дает,

+------------+
| difference |
+------------+
|          7 |
+------------+