繁体   English   中英

MYSQL:SQL借记/贷记

[英]MYSQL: SQL debit / credit

编辑上一个问题,我简化了(希望!)我的问题。

我们走吧。

我们在这个小提琴中有一个表格: http ://sqlfiddle.com/#! 9/42250/1

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

实际上,此查询包含以下数据:

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,则需要计算此费用并应用贷记/借方。

非常感谢你。

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

GL!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM