0

我正在努力构建一个 mysql 查询。我需要从两个表中获取数据:

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

_

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

Socash_data持有需要支付的付款,并cash持有已处理的已注册付款。
当付款被标记为完成时,相关行将cash_data更新为关联的userID 和date
这个想法是查询cash_data并检查哪些付款有一些收入支付但未标记为完整(即没有userdate字段数据)。
好的,到这里很简单。
问题是可能有几个cash表行与cash_data一行相关,我必须选择所有cash_data行,然后选择关系cash行并求和cash.income_money- 因为我需要cash.totalcash.income_money.

4

2 回答 2

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

于 2013-06-17T15:48:39.203 回答
0

您需要连接这两个表。像这样:

SELECT SUM(cash.income_money), cash_data.total, cash_data.id
FROM cash_data 
    JOIN cash ON cash.cashdata_id=cash_data.id
于 2013-06-17T15:46:30.523 回答