Je cherche à faire la différence entre 2 sommes cumulées et triées par date, mais la colonne date est sur une table différente de la date qui semble poser problème. (date
figure dans la table eventinfo
et les colonnes que je souhaite utiliser figurent dans le tableau results
).Tri séquentiel cumulatif SQLite
Je veux obtenir un total cumulatif sur la différence entre results.prize
et results.totalbuyin
avec le total commandé par eventinfo.date
où results.event=eventinfo.eventname
. Je voudrais également filtrer la requête par results.playername
afin que je puisse obtenir un total cumulatif pour n'importe quel joueur individuel. Je peux obtenir la colonne de date à apparaître dans la requête et par ordre chronologique, mais somme qui se passe dans l'ordre de numéro d'identification:
Résultats Tableau
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 Tableau
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;
Dans ces tableaux results.event=eventinfo.eventname
Failed Recherche
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
Courant de sortie
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;
ligne 8 est évidemment le problème mais je ne peux pas sembler réécrire le code pour le corriger. Mettre en t1.date>=t2.date
ne fonctionnera pas même si je pensais avoir rejoint les tables. J'utilise SQLite3 si cela fait une différence.
Je vous suggère de modifier votre question pour inclure des données d'échantillon et les résultats souhaités. Une requête qui ne fonctionne pas n'est souvent pas suffisante pour communiquer ce que l'on veut faire à d'autres personnes qui ne connaissent pas le problème. –
Si eventinfo.EventName est un champ Char, il serait probablement judicieux d'ajouter une colonne ID unique à la table eventinfo. L'utilisation de colonnes de texte pour les clés n'est généralement pas recommandée. –
À quoi sert la colonne results.id? À première vue, il semble être un UID, mais vous l'utilisez comme s'il s'agissait d'une valeur qui appartient au lecteur. Est-ce que la table des résultats comporte plusieurs rangées par joueur? –