Advertisement
Guest User

Untitled

a guest
Jan 5th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. INSERT INTO _rijderslijst
  2. WITH kmstanden_rang AS (
  3.     WITH kmstanden_grouped AS (
  4.         SELECT
  5.             k.fiets_id,
  6.             MAX(k.kmstand) AS kmstand,
  7.             MAX(k.datum) AS kmstand_datum,
  8.             CASE WHEN MAX(k.datum) - MIN(k.datum) = 0
  9.                 THEN 0
  10.                 ELSE
  11.                     ROUND(
  12.                     CAST(MAX(k.kmstand) AS BIGINT) * 2628000 /
  13.                     (EXTRACT(EPOCH FROM MAX(k.datum)) - EXTRACT(EPOCH FROM MIN(k.datum)))
  14.                     )
  15.                 END AS kmstand_gemiddeld
  16.             FROM kmstanden k GROUP BY k.fiets_id ORDER BY kmstand DESC
  17.     ) SELECT nextval('_rang_seq') - 1 AS rang, k.* FROM kmstanden_grouped k, setval('_rang_seq', 1)
  18.         )
  19.     SELECT
  20.     f.fiets_id,
  21.     k.rang,
  22.     t.type,
  23.     f.nr,
  24.     v.variant,
  25.     f.afleverdatum,
  26.     f.rijder_id,
  27.     (SELECT fok.kleur
  28.         FROM fietsen_onderdelen_kleuren fok
  29.         LEFT JOIN kleuronderdelen ko ON ko.onderdeel = fok.onderdeel
  30.         WHERE ko.frontendkleur = 'kleur1'::frontendkleur
  31.             AND fok.fiets_id = f.fiets_id)
  32.         AS kleur1,
  33.     (SELECT fok.kleur
  34.         FROM fietsen_onderdelen_kleuren fok
  35.         LEFT JOIN kleuronderdelen ko ON ko.onderdeel = fok.onderdeel
  36.         WHERE ko.frontendkleur = 'kleur2'::frontendkleur
  37.             AND fok.fiets_id = f.fiets_id)
  38.         AS kleur2,
  39.     (SELECT fok.kleur
  40.         FROM fietsen_onderdelen_kleuren fok
  41.         LEFT JOIN kleuronderdelen ko ON ko.onderdeel = fok.onderdeel
  42.         WHERE ko.frontendkleur = 'kleur3'::frontendkleur
  43.             AND fok.fiets_id = f.fiets_id)
  44.         AS kleur3,
  45.     k.kmstand,
  46.     k.kmstand_datum,
  47.     r.naam,
  48.     r.woonplaats,
  49.     r.land AS land,
  50.     r.provincie AS provincie,
  51.     r.aantal_fietsen,
  52.     CASE WHEN r.email_is_prive = false THEN r.email ELSE NULL END AS email,
  53.     r.website,
  54.     k.kmstand_gemiddeld AS km_gemiddeld,
  55.     l.landnaam AS landnaam,
  56.     p.provincienaam AS provincienaam,
  57.     EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) AS timestamp
  58.     FROM fietsen f
  59.     LEFT JOIN rijders r ON f.rijder_id = r.rijder_id
  60.     LEFT JOIN varianten v ON v.variant_id = f.variant_id
  61.     LEFT JOIN types t ON t.type_id = v.type_id
  62.     LEFT JOIN landen l ON r.land = l.code
  63.     LEFT JOIN provincies p ON p.code = r.provincie
  64.     LEFT JOIN kmstanden_rang k ON f.fiets_id = k.fiets_id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement