MYSQL:SQL借记/贷记

时间:2015-07-22 12:19:59

标签: mysql

编辑我之前的问题,我简化了(我希望!)我的问题。

我们走吧。

我们有一个像这个小提琴的桌子:http://sqlfiddle.com/#!9/42250/1

我们有3个不同的id_customer,我需要SELECT才能在两个或更多id_shop中进行交易。

实际上我在这个查询中有这些数据:

SELECT DISTINCT(id_customer)
FROM transaction AS t1
WHERE EXISTS

    (SELECT id_customer
    FROM transaction as t2
    WHERE t2.id_shop_where_transaction_is_done != t1.id_shop_where_transaction_is_done 
    AND t2.id_customer = t1.id_customer)

数据为64982和64984。

现在我需要计算商店之间的信用卡/借记卡,并有一个如下结果表:

+------------+-------+--------+
|            | DEBIT | CREDIT |
+------------+-------+--------+
| TRASTEVERE | 5.50  | 0.00   |
| MONTI      | 2.00  | 5.50   |
| PRATI      | 0.00  | 2.00   |
+------------+-------+--------+

为什么“TRASTEVERE”的借方是5.50?因为id_customer 64984在TRASTEVERE中收取11.00并在MONTI中花费5.50€。

为什么“MONTI”的信用额度为5.50?因为id_customer 64984在TRASTEVERE中收取11.00并在MONTI中花费了5.50。

基本上,我需要

1)排除仅在一个商店消费的客户(制作,请参阅上面的查询) 2)如果客户在商店A中收取X并在商店B中花费Y,我需要计算并应用信用卡/借记卡。

非常感谢。

1 个答案:

答案 0 :(得分:1)

在评论和聊天中讨论后,我们发现这里的解决方案(最小的表结构更改)将在表事务中添加新列(id_shop_where_money_come_from INT),这将保存代表account_id的数据,其中钱来自我们所以我们可以休息之间进行两次转账。这是SQL Fiddle添加了列和查询,将输出所需的结果...

GL!