]> ruin.nu Git - ndwebbie.git/blobdiff - database/available_ships.sql
Change infrastructure for users, groups and channels
[ndwebbie.git] / database / available_ships.sql
index ecd2ad788176a1f347b8a6d536b29745cca0c16c..e7d70b7d95315cf8c3c798792103891287473606 100644 (file)
@@ -1,38 +1,39 @@
-CREATE TABLE ticks (t INTEGER PRIMARY KEY);
+/*CREATE TABLE ticks (t INTEGER PRIMARY KEY);
 
 INSERT INTO ticks (SELECT * FROM generate_series(0,10000));
+*/
 
 CREATE OR REPLACE VIEW ships_home AS
-SELECT tick, uid,username, planet, ship
+SELECT tick, uid,username, pid, ship
        , COALESCE(f.amount - o.amount,f.amount) AS amount
        , COALESCE(fleets,3) AS fleets
 FROM users u JOIN (
-       SELECT t AS tick, planet,ship,amount
+       SELECT t AS tick, pid,ship,amount
        FROM (
-               SELECT DISTINCT ON (t,planet,mission) t,planet,mission, fid
+               SELECT DISTINCT ON (t,pid,mission) t,pid,mission, fid
                FROM ticks
                        CROSS JOIN fleets f
                WHERE tick <= t
                        AND name IN ('Main','Advanced Unit')
                        AND mission = 'Full fleet'
-               ORDER BY t,planet,mission,tick DESC, fid DESC
+               ORDER BY t,pid,mission,tick DESC, fid DESC
        ) f
                JOIN fleet_ships fs USING (fid)
        
-) f USING (planet) LEFT OUTER JOIN (
-       SELECT t AS tick, planet, ship, SUM(fs.amount) AS amount
+) f USING (pid) LEFT OUTER JOIN (
+       SELECT t AS tick, pid, ship, SUM(fs.amount) AS amount
                , 3 - COUNT(DISTINCT fid) AS fleets
        FROM ticks
                CROSS JOIN fleets f
-               JOIN launch_confirmations USING (fid)
+               JOIN (SELECT landing_tick, fid, back, eta FROM launch_confirmations) lc USING (fid)
                JOIN fleet_ships fs USING (fid)
        WHERE back > t
                AND landing_tick - eta - 12 < t
-       GROUP BY t,planet,ship
-) o USING (tick,planet,ship)
+       GROUP BY t,pid,ship
+) o USING (tick,pid,ship)
 WHERE COALESCE(f.amount - o.amount,f.amount) > 0;
 
 CREATE OR REPLACE VIEW available_ships AS
-SELECT uid,username, planet, ship, amount, fleets
+SELECT uid,username, pid, ship, amount, fleets
 FROM ships_home
 WHERE tick = tick();