gpt4 book ai didi

php - Mysql中的"Equity"系统

转载 作者:行者123 更新时间:2023-11-29 03:38:10 26 4
gpt4 key购买 nike

所以我在这个游戏中创建了一个虚拟的“股权”系统,假设玩家 A 支付 50 美元购买值(value) 20 美元的属性(property)(购买 100%),然后玩家 B 出现并支付 10 美元(现在假设玩家 A 为 83.3333%,玩家 B 为 16.6666%),我如何计算玩家 A 赚了多少钱(因为在玩家 B 购买份额之前他获得了 100%,此后为 83.3333%)。

我有一个“购买”的 MySql 数据库模式以及日期列、购买时的属性(property)值(value),当然还有玩家支付的美元,只是想着如何编写查询来获取这些值让我的大脑很受伤,所以如有任何指点,我将不胜感激。

让一切变得非常棘手的是,每个玩家都可以购买另一份属性(property),这使得这个过程更加困难。

最佳答案

您需要的是一个触发器,以防您希望自动完成此操作,但目前我将专注于实际查询。因此,假设您有两个字段,一个表示持有的值(value),另一个表示持有的百分比(其他字段,根据业务需要可以存在),但让我向您展示一个仅使用这两个字段的示例

Person | Value | Percentage 

让我们进一步假设,根据您的示例,A 购买了值(value) 50 美元的股票

您需要调用(在插入触发器可能正常或单独调用之后)此查询,该查询使用不太推荐的方法通过使用第二个子查询根据其自身的聚合值更新表。然而,如果你想把它做得干净,那么你需要更新两个表,一个将保存股份的值(value),第二个将保存百分比。

CREATE TABLE SHARES (NAME VARCHAR(20), VALUE INTEGER, PERCENTAGE FLOAT);

INSERT INTO SHARES (NAME,VALUE) VALUES ('A',50);

UPDATE SHARES SET PERCENTAGE = VALUE/(SELECT TOTAL_VALUE FROM
(SELECT SUM(VALUE) AS TOTAL_VALUE
FROM SHARES) AS DUMMY)*100;

INSERT INTO SHARES (NAME,VALUE) VALUES ('B',10);

UPDATE SHARES SET PERCENTAGE = VALUE/(SELECT TOTAL_VALUE FROM
(SELECT SUM(VALUE) AS TOTAL_VALUE
FROM SHARES) AS DUMMY)*100;

http://www.sqlfiddle.com/#!2/cec38/1/0 找到 fiddle 希望这会有所帮助。

关于php - Mysql中的"Equity"系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18168187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com