2014-09-01 4 views
-1

У меня есть 2 таблицы, и я хочу получить набор данных из одного запроса, чтобы показать его в диаграмме. Но я получаю Ошибка при выполнении. Существует только год и год, а месяц и месяц опыта - столбец, имеющий общие данные. каждая строка имеет свои поля года и месяца.Функция суммы на двух разных таблицах в одном запросе select

вот вопрос я пытался:

select 
    t.transExpense 
    g.grocExpense 
from 
    (Select sum(traexpense) as transExpense from 
       transportExpense where Year="2014") t, 
    (Select sum(groexpense) as grocExpense from 
       groceryExpense where expYear="2014") g 

Пожалуйста, помогите.

+1

какое сообщение об ошибке вы получаете? – Thilo

ответ

2

Вам не хватает запятой после t.transExpense.

Однако, чтобы вернуть одно значение, вам не нужно помещать подзапросы в предложение FROM; вы можете использовать их непосредственно в SELECT как скалярные подзапросы:

SELECT (SELECT SUM(traexpense) 
     FROM transportExpense 
     WHERE Year = '2014' 
     ) AS transExpense, 
     (SELECT SUM(groexpense) 
     FROM grocExpense 
     WHERE expYear = '2014' 
     ) AS grocExpense; 
+0

Спасибо, что исправил меня. Имеет смысл получить что-то оптимистичное. Когда-то мы забываем о мелочах, таких как запятая, чтобы испортить наш день. – SOAMad

2

Добавить запятую между выбранными полями:

select 
t.transExpense, -- << right there 
g.grocExpense 
from 
(Select sum(traexpense) as transExpense from transportExpense where Year="2014") t, 
(Select sum(groexpense) as grocExpense from groceryExpense where expYear="2014") g 
0

Это может быть решено с помощью JOIN запроса. Что-то вроде:

SELECT sum(t.traexpense) as t.transExpense, sum(g.groexpense) as g.grocExpense 
from transportExpense t LEFT JOIN groceryExpense g ON t.fieldname=g.fieldname 
where g.expYear=2014 and t. Year=2014 

Если таблица не имеет никакого общего поля для соединения можно использовать t.Year и g.expYear для присоединения.

Смежные вопросы