2013-06-17 2 views
0

Я пытаюсь построить запрос mysql. Мне нужно получить данные из двух таблиц:
Сложный реляционный mysql-запрос с суммой

Table cash 
---------- 
id 
income_money 
cashdata_id 
paymentterm 

_

Table cash_data 
------------ 
id 
total 
user 
date 

Так cash_data проводит платежи, которые должны быть оплачено, и cash имеет зарегистрированные платежи, которые уже обработаны.
Когда платеж помечается как завершенный, соответствующая строка в cash_data обновляется с помощью связанных user ID и date.
Идея состоит в том, чтобы сделать запрос от cash_data и проверить, какие платежи уплачены, но не отмечены как завершенные (т. Е. Не содержит user и date данных полей).
Хорошо, здесь было просто.
Проблема заключается в том, что там может быть несколько cash строки таблицы, относящиеся к одной строке cash_data и я должен выбрать все cash_data строки, а затем выберите реляционные cash строк и просуммировать cash.income_money - потому что мне нужно сравнить cash.total с cash.income_money.

+0

Если приведенные ниже ответы не решить вашу проблему, рассмотреть возможность предоставления sqlfiddle. – Strawberry

ответ

0

Запрос суммируя деньги:

Это также использует левое соединение, чтобы показать те строки, которые, возможно, еще не имеют платежей.

SELECT cd.id, 
     cd.total, 
     sum(c.income_money) AS "Total Income" 
FROM cash_data cd 
LEFT JOIN cash c ON c.cashdata_id = cd.id 
GROUP BY cd.id, 
     cd.total; 

Первый запрос, который довольно прост:

select cd.id, cd.total, sum(c.income_money) as "Total Income" from 
cash_data cd left join cash c 
on c.cashdata_id = cd.id 
group by cd.id, cd.total; 

SQL Скрипка: http://www.sqlfiddle.com/#!2/800b4/6

0

Вам необходимо присоединиться к двум таблицам. Как это:

SELECT SUM(cash.income_money), cash_data.total, cash_data.id 
FROM cash_data 
    JOIN cash ON cash.cashdata_id=cash_data.id 
+0

Не вижу ни одной группы ... Это просто суммирует все суммы за все. См. Http://www.sqlfiddle.com/#!2/800b4/5, содержащий исходный SQL в качестве второго запроса. –

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