MYSQL:SQL借记/贷记

标签 mysql

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

我们走吧。

我们有一个像这个 fiddle 一样的表:http://sqlfiddle.com/#!9/42250/1

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

实际上我通过这个查询得到了这些数据:

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,我需要计算并应用信用卡/借记卡。

非常感谢。

最佳答案

经过评论和聊天中的讨论,我们发现这里的解决方案(对表结构进行最小的更改)是在表 transaction 中添加新列 (id_shop_where_money_come_from INT),该列将保存表示资金来源的 account_id 的数据,以便我们可以两个账户之间进行休耕。这是SQL Fiddle添加列和查询将输出所需的结果...

GL!

关于MYSQL:SQL借记/贷记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31562965/

相关文章:

php - 复杂的搜索解决方法

MySQL 用另一个值替换结果值

sql - T-SQL 子查询和可能的连接的正确语法

mysql 高效执行数百万条 INSERT 语句

php - 用字符串中的同义词替换单词

php - 命中计数器sql错误

mysql - Grafana - 如何为 Mysql 数据源创建 sql 查询部分变量/宏

php - 哪个更快 : in_array or database queries?

php - 从 ID 范围获取数据并存储在单独的 PHP 数组中 - 复杂的 MySQL 查询

php - 比较两个结果并显示结果 PHP