6001.ボート交換時の成績検索 - takobouzu/BOAT_RACE_DB GitHub Wiki
ボート交換時の成績検索
2021.02.11 大村G1 九州地区選手権で4500 山田康二選手のボートが変更になった時に、ボート変更時の競走成績が気になって作成したスクリプトである。
t_race_d.yyyymmdd BETWEEN '20210201' AND '20210212'
で検索範囲を設定する。
ORDER BY 〜
で節間における選手の出走情報・競走成績を初日から最終日まで昇順にソートしている。
節間における前走とのデータ比較する際に応用が利くスクリプトである。
スクリプトコード
"""
【ファイル】change_boat.py
【機能仕様】節間でボートを交換した選手の成績を出力する
【動作環境】pythonista3
【開発来歴】2021.01.23 Ver 1.00
"""
import sqlite3
BOAT_RACE_DB = 'boatrace.db'
#競走成績抽出SQL
wk_sql1 = '''
SELECT t_race_t.pool_code, t_race_t.pool_name,t_race_t.title,t_race_d.player_no,t_result_d.ranking,t_result_d.yyyymmdd,t_result_d.race_no,t_race_d.boat_no
FROM
t_race_t,t_race_d,t_result_d
WHERE
t_race_t.yyyymmdd = t_race_d.yyyymmdd AND t_race_t.pool_code = t_race_d.pool_code AND
t_result_d.yyyymmdd = t_race_d.yyyymmdd AND t_result_d.pool_code = t_race_d.pool_code AND t_result_d.race_no = t_race_d.race_no AND t_result_d.entry_no = t_race_d.entry_no AND
t_race_d.yyyymmdd BETWEEN '20210201' AND '20210212'
ORDER BY substr(t_race_t.yyyymmdd,1,4) ASC,t_race_t.pool_code ASC, t_race_t.title ASC, t_race_d.player_no ASC, t_race_d.yyyymmdd ASC,t_race_d.race_no ASC
'''
#ブレークキー
key_pool_code = '' #場コード
key_pool_name = '' #場名
key_title = '' #節間タイトル
key_player_no = '' #登番
key_boat_no = '' #ボート番号
#出走表タイトルテーブルのレコードを出力
conn = sqlite3.connect(BOAT_RACE_DB)
cur = conn.cursor()
for row1 in cur.execute(wk_sql1):
#レコードの内容を作業変数に転記
wk_pool_code = str(row1[0]) #場コード
wk_pool_name = str(row1[1]) #場名
wk_title = str(row1[2]) #節間タイトル
wk_player_no = str(row1[3]) #登番
wk_ranking = str(row1[4]) #着順
wk_yyyymmdd = str(row1[5]) #開催年月日
wk_race_no = str(row1[6]) #レース番号
wk_boat_no = str(row1[7]) #ボート番号
#キーブレーク処理
if (key_pool_code == wk_pool_code) and (key_pool_name == wk_pool_name) and (key_title == wk_title) and (key_player_no == wk_player_no):
#節間でボートが変更されたらレコードを出力する
if(key_boat_no != wk_boat_no):
print(wk_pool_code,wk_pool_name,wk_title,wk_player_no,wk_ranking,wk_yyyymmdd,wk_race_no, key_boat_no + ' --> ' + wk_boat_no)
key_boat_no = wk_boat_no
else:
key_pool_code = wk_pool_code
key_pool_name = wk_pool_name
key_title = wk_title
key_player_no = wk_player_no
key_boat_no = wk_boat_no
cur.close()
conn.close()
実行結果
24 大村 九州地区選手権 4500 2 20210211 10 53 --> 57
24 大村 九州地区選手権 4504 4 20210209 09 61 --> 56
24 大村 九州地区選手権 4521 5 20210209 07 28 --> 38