我正在寻找2个累计总和和按日期排序之间的差异,但日期列是在不同的表上,似乎是导致问题的日期。 (date
位于eventinfo
表中,我想使用的列位于results
表中)。SQLite累计总和排序
我想要获得results.prize
和results.totalbuyin
之间的差异总计,其中results.event=eventinfo.eventname
的总订购量为eventinfo.date
。我还想过滤查询results.playername
,这样我就可以获得任何单个玩家的总分。我能得到的日期栏出现在查询和订单日期,但总额在的ID号的顺序发生:
结果表
ID;PlayerName;TotalBuyIn;Prize;Rebuys;Event;
1;Ole Schemion;100000;1062785;0;Aria $100K July 2014;
2;Isaac Haxton;100000;813394;0;Aria $100K July 2014;
3;Daniel Colman;100000;796821;0;Aria $100K July 2014;
4;Daniel Cates;100000;297000;0;Aria $100K July 2014;
5;Cary Katz;100000;0;0;Aria $100K July 2014;
EventInfo表
ID;EventName;Date;Location;Country;PokerTour;UniquePlayers;Rebuys;
1;ACOP 500k 2014;2014-11-01;City of Dreams;Macau;APPT;52;50;
2;ACOP Super High Roller 2015;2015-11-13;City of Dreams;Macau;APPT;34;17;
3;Alpha 8 Florida 2013;2013-08-26;Seminole Hard Rock;USA;WPT;18;3;
4;Alpha 8 Florida 2015;2015-01-17;Seminole Hard Rock;USA;WPT;6;0;
5;Aria $100K July 2014;2014-02-14;Emperor Palace;South Africa;WPT;9;1;
在这些表results.event=eventinfo.eventname
失败的查询
SELECT t1.id,
t1.prize,
t1.TotalBuyIn,
t1.PlayerName,
(SUM(t2.prize)) - (SUM(t2.totalbuyin)),
eventinfo.Date
FROM results t1
INNER JOIN results t2 ON t1.id >= t2.id and t2.PlayerName = "Erik Seidel"
INNER JOIN eventinfo ON t1.Event = eventinfo.EventName
Where t1.PlayerName = "Erik Seidel"
GROUP BY t1.id
ORDER BY eventinfo.Date
电流输出
t1.id;t1.prize;t1.TotalBuyIn;t1.PlayerName;(SUM(t2.prize)) - (SUM(t2.totalbuyin));eventinfo.Date;
1314;618139;98902;Erik Seidel;135685;2011-01-22;
1292;2472555;247255;Erik Seidel;-383552;2011-01-27;
1401;1092780;100000;Erik Seidel;1128465;2011-05-18;
1425;0;100000;Erik Seidel;1028465;2011-12-09;
1127;0;100000;Erik Seidel;-2341985;2012-01-05;
8号线是明显的问题,但我似乎无法重写代码来修复它。尽管我认为我已经加入了表格,但输入t1.date>=t2.date
将不起作用。如果这有所作为,我正在使用SQLite3。
我建议您修改您的问题以包含样本数据和期望的结果。一个非工作的查询通常不足以将其想要做的事告诉给不熟悉该问题的其他人。 –
如果eventinfo.EventName是一个Char字段,那么将唯一ID列添加到eventinfo表可能是一个好主意。通常不推荐使用文本列键。 –
什么是results.id列?乍看之下,它似乎是一个UID,但是您使用它就好像它是一个与玩家相关的值。结果表是否每个玩家有多行? –