Warning: this is all very much work in progress... thoughts welcome
So I installed OpenOffice 2.0 Base and created a database connected to my PokerTracker MDB file.
This lets me run queries to filter hands on things like "show me all hands where I continuation bet flop and turn" etc.
Where I just want to calculate numbers ("how much money do I win by continuation betting"), the spreadsheet-like UI is fine. If I want to analyse the hands I've filtered, then it's horrible though.
What I wanted to be able to do was view hands in PT just like when you double click on a session entry ... you can view/playback hands, get the standard stats etc etc. Instead of a session being a collection of hands played at the same table, it would be a collection of hands satisfying the filter criteria.
So here are the steps to create a session consisting of "All hands where I continuation bet", as an example.
1. PREPARATION
1.1 Create a new table in your DB, called "saved_session_ids", with the following Long Integer fields:
session_id
backup_session_id
player_id
game_id
1.2 Create a dummy session: create a file with a single uneventful HH edited as follows:
- Change the table name to something like "Dummy session"
- Change the date for ease of filtering
And import into PT. Look in the "session" table and get the session_id parameter. We'll refer to this as DUMMY_SESSION_ID.
Also I'll refer to your player_id henceforth as MY_PLAYER_ID
2. PER HH IMPORT
2.1 Fill in the saved_session_ids table:
DELETE FROM saved_session_ids;
INSERT INTO saved_session_ids (game_id, session_id, player_id)
SELECT game_id, session_id, player_id
FROM game_players AS gp
WHERE gp.player_id=MY_PLAYER_ID
[NB ... there must be a nicer way of doing this so you only add newly imported games. I'm such a SQL noob]
3. PER QUERY (for my example continuation bet query)
3.1 Reset from any previous queries
UPDATE saved_session_ids
SET backup_session_id=session_id
WHERE backup_session_id=DUMMY_SESSION_ID
3.2 Make query (part 1)
UPDATE saved_session_ids AS ss
INNER JOIN game_players AS gp
ON gp.game_id=ss.game_id
SET backup_session_id=DUMMY_SESSION_ID
WHERE
(gp.player_id=MY_PLAYER_ID
AND gp.praise =1
AND gp.fbet=1)
[This is the only filter-specific bit]
3.3 Set the display up for PT
UPDATE game_players AS gp
INNER JOIN saved_session_ids AS ss
ON gp.game_id=ss.game_id
SET gp.session_id =ss.backup_session_id
WHERE gp.player_id=MY_PLAYER_ID
AND ss.backup_session_id=DUMMY_SESSION_ID
3.4 Now open the database in PT (you don't need to open/close the app, just the main window), go to the session tab, and double click on the "Dummy session" window
3.5 To clear the query and return the hands to their original session:
UPDATE game_players AS gp
INNER JOIN saved_session_ids AS ss
ON gp.game_id=ss.game_id
SET gp.session_id =ss.session_id
WHERE gp.session_id=DUMMY_SESSION_ID
AND gp.player_id=MY_PLAYER_ID