%PDF- %PDF-
| Direktori : /data/www_bck/varak.net_bck/trenink.varak.net/data/ |
| Current File : //data/www_bck/varak.net_bck/trenink.varak.net/data/main.sql |
/*
Navicat SQLite Data Transfer
Source Server : trenink_local
Source Server Version : 30623
Source Host : localhost:0
Target Server Type : SQLite
Target Server Version : 30623
File Encoding : 65001
Date: 2017-09-24 13:21:49
*/
-- ----------------------------
-- Table structure for "matches"
-- ----------------------------
DROP TABLE "matches";
CREATE TABLE "matches" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" TEXT NOT NULL,
"date" TEXT NOT NULL,
"guid" TEXT NOT NULL
);
-- ----------------------------
-- Records of matches
-- ----------------------------
-- ----------------------------
-- Table structure for "score"
-- ----------------------------
DROP TABLE "score";
CREATE TABLE "score" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"stage" INTEGER NOT NULL,
"alpha" INTEGER NOT NULL,
"charlie" INTEGER NOT NULL,
"delta" INTEGER NOT NULL,
"miss" INTEGER NOT NULL,
CONSTRAINT "fk_score_stage" FOREIGN KEY ("stage") REFERENCES "stages" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT
);
-- ----------------------------
-- Records of score
-- ----------------------------
-- ----------------------------
-- Table structure for "shooters"
-- ----------------------------
DROP TABLE "shooters";
CREATE TABLE "shooters" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" TEXT NOT NULL,
"mail" TEXT NOT NULL
);
-- ----------------------------
-- Records of shooters
-- ----------------------------
-- ----------------------------
-- Table structure for "sqlite_sequence"
-- ----------------------------
DROP TABLE "sqlite_sequence";
CREATE TABLE sqlite_sequence(name,seq);
-- ----------------------------
-- Records of sqlite_sequence
-- ----------------------------
-- ----------------------------
-- Table structure for "stages"
-- ----------------------------
DROP TABLE "stages";
CREATE TABLE "stages" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"guid" TEXT NOT NULL,
"order" INTEGER NOT NULL,
"time" REAL NOT NULL,
"shooter" INTEGER NOT NULL,
"match" INTEGER NOT NULL,
"powerFactor" TEXT NOT NULL,
"division" TEXT NOT NULL,
"name" TEXT NOT NULL,
CONSTRAINT "fk_stages_shooter" FOREIGN KEY ("shooter") REFERENCES "shooters" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT "fk_stages_match" FOREIGN KEY ("match") REFERENCES "matches" ("id") ON DELETE RESTRICT ON UPDATE RESTRICT
);
-- ----------------------------
-- Records of stages
-- ----------------------------
-- ----------------------------
-- View structure for "best_scores"
-- ----------------------------
DROP VIEW IF EXISTS "best_scores";
CREATE VIEW "best_scores" AS
SELECT max([ss].[hitFactor]) [hitFactor],
[ss].[name],
[ss].[shooter],
[ss].[division],
[sso].[guid],
[sso].[alpha],
[sso].[charlie],
[sso].[delta],
[sso].[miss],
[sso].[time],
[sso].[match],
[ss].[powerFactor],
[sso].[stagePoints]
FROM [score_stages] [ss]
JOIN [score_stages] [sso] ON [ss].[hitFactor] = [sso].[hitFactor]
GROUP BY [ss].[name],
[ss].[shooter],
[ss].[division],
[ss].[powerFactor];
-- ----------------------------
-- View structure for "score_stages"
-- ----------------------------
DROP VIEW IF EXISTS "score_stages";
CREATE VIEW "score_stages" AS
SELECT [stages].[name],
[stages].[time],
[stages].[shooter],
[stages].[match],
[stages].[guid],
[stages].[powerFactor],
[stages].[division],
[sc].[stage],
[sc].[alpha],
[sc].[charlie],
[sc].[delta],
[sc].[miss],
CASE [stages].[powerFactor]
WHEN 'SUBMINOR'
THEN ([sc].[alpha] * 5 + [sc].[charlie] * 3 + [sc].[delta] - [sc].[miss] * 10)
WHEN 'MINOR'
THEN ([sc].[alpha] * 5 + [sc].[charlie] * 3 + [sc].[delta] - [sc].[miss] * 10)
WHEN 'MAJOR'
THEN ([sc].[alpha] * 5 + [sc].[charlie] * 4 + [sc].[delta] * 2 - [sc].[miss] * 10)
END [stagePoints],
CASE [stages].[powerFactor]
WHEN 'SUBMINOR'
THEN round(([sc].[alpha] * 5 + [sc].[charlie] * 3 + [sc].[delta] - [sc].[miss] * 10) / [stages].[time], 4)
WHEN 'MINOR'
THEN round(([sc].[alpha] * 5 + [sc].[charlie] * 3 + [sc].[delta] - [sc].[miss] * 10) / [stages].[time], 4)
WHEN 'MAJOR'
THEN round(([sc].[alpha] * 5 + [sc].[charlie] * 4 + [sc].[delta] * 2 - [sc].[miss] * 10) / [stages].[time], 4)
END [hitFactor]
FROM (
SELECT [stage],
sum([alpha]) [alpha],
sum([charlie]) [charlie],
sum([delta]) [delta],
sum([miss]) [miss]
FROM [score]
GROUP BY [stage]
) [sc]
JOIN [stages] ON [sc].[stage] = [stages].[id];