Advertisement
Pato94

Query Asistió / (Totales - Canceladas)

Sep 19th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.07 KB | None | 0 0
  1.  
  2. SELECT
  3.   SUM(
  4.       CASE
  5.       WHEN ROUND(source.AT, 1) = 0.0
  6.         THEN 1
  7.       ELSE 0
  8.       END
  9.   ) AS 'AT00',
  10.   SUM(
  11.       CASE
  12.       WHEN ROUND(source.AT, 1) = 0.1
  13.         THEN 1
  14.       ELSE 0
  15.       END
  16.   ) AS 'AT01',
  17.   SUM(
  18.       CASE
  19.       WHEN ROUND(source.AT, 1) = 0.2
  20.         THEN 1
  21.       ELSE 0
  22.       END
  23.   ) AS 'AT02',
  24.   SUM(
  25.       CASE
  26.       WHEN ROUND(source.AT, 1) = 0.3
  27.         THEN 1
  28.       ELSE 0
  29.       END
  30.   ) AS 'AT03',
  31.   SUM(
  32.       CASE
  33.       WHEN ROUND(source.AT, 1) = 0.4
  34.         THEN 1
  35.       ELSE 0
  36.       END
  37.   ) AS 'AT04',
  38.   SUM(
  39.       CASE
  40.       WHEN ROUND(source.AT, 1) = 0.5
  41.         THEN 1
  42.       ELSE 0
  43.       END
  44.   ) AS 'AT05',
  45.   SUM(
  46.       CASE
  47.       WHEN ROUND(source.AT, 1) = 0.6
  48.         THEN 1
  49.       ELSE 0
  50.       END
  51.   ) AS 'AT06',
  52.   SUM(
  53.       CASE
  54.       WHEN ROUND(source.AT, 1) = 0.7
  55.         THEN 1
  56.       ELSE 0
  57.       END
  58.   ) AS 'AT07',
  59.   SUM(
  60.       CASE
  61.       WHEN ROUND(source.AT, 1) = 0.8
  62.         THEN 1
  63.       ELSE 0
  64.       END
  65.   ) AS 'AT08',
  66.   SUM(
  67.       CASE
  68.       WHEN ROUND(source.AT, 1) = 0.9
  69.         THEN 1
  70.       ELSE 0
  71.       END
  72.   ) AS 'AT09',
  73.   SUM(
  74.       CASE
  75.       WHEN ROUND(source.AT, 1) = 1.0
  76.         THEN 1
  77.       ELSE 0
  78.       END
  79.   ) AS 'AT10',
  80.   COUNT(*)
  81. FROM (SELECT
  82.         r.customer_id,
  83.         COALESCE(
  84.             SUM(
  85.                 CASE
  86.                 WHEN r.status = 'seated'
  87.                   THEN 1
  88.                 WHEN r.status = 'completed'
  89.                   THEN 1
  90.                 WHEN r.status = 'reserved'
  91.                   THEN 1
  92.                 ELSE 0
  93.                 END
  94.             ) / (
  95.               COUNT(*) - SUM(
  96.                   CASE
  97.                   WHEN r.status = 'canceled'
  98.                     THEN 1
  99.                   ELSE 0
  100.                   END
  101.               )
  102.             )
  103.             , 0
  104.         ) AS 'AT'
  105.       FROM reservations r
  106.       WHERE r.created_at > '2018-01-01'
  107.         AND r.created_at < '2018-09-01'
  108.         AND r.customer_id IS NOT NULL
  109.         AND r.origin LIKE 'restorando'
  110.       GROUP BY 1) AS source;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement