SHARE
TWEET

Untitled

AnthonyWhitebeard Sep 17th, 2019 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SELECT
  2.     IF(
  3.                 COUNT(DISTINCT IF(t.avalaible_gen IN(0, 1), CONCAT(t.art_num, t.brand_id), NULL)) > 0,
  4.                 COUNT(DISTINCT IF(t.avalaible_gen IN(0, 1), CONCAT(t.art_num, t.brand_id), NULL)),
  5.                 COUNT(DISTINCT IF(t.avalaible_gen = 2, CONCAT(t.art_num, t.brand_id), NULL))
  6.         ) AS countArticles
  7.      , IFNULL (
  8.         MIN(IF (t.avalaible_gen IN(0, 1), t.price_torg, NULL)),
  9.         MIN(IF (t.avalaible_gen IN(2), t.price_torg, NULL))
  10.     ) AS minPriceArticles
  11.      , IFNULL(
  12.         MAX(IF (t.avalaible_gen IN(0, 1), t.price_torg, NULL)),
  13.         MAX(IF (t.avalaible_gen IN(2), t.price_torg, NULL))
  14.     ) AS maxPriceArticles
  15.      , IFNULL (
  16.         MIN(IF (t.avalaible_gen IN(0, 1), t.price_torg, NULL)),
  17.         MIN(IF (t.avalaible_gen IN(2), t.price_torg, NULL))
  18.     ) AS minPriceSection
  19.      , IFNULL(
  20.         MAX(IF (t.avalaible_gen IN(0, 1), t.price_torg, NULL)),
  21.         MAX(IF (t.avalaible_gen IN(2), t.price_torg, NULL))
  22.     ) AS maxPriceSection
  23.      , IF(
  24.             COUNT(DISTINCT IF(t.avalaible_gen IN(0, 1), CONCAT(t.art_num, t.brand_id), NULL)) > 0,
  25.             1,
  26.             0
  27.     ) AS allAvailable
  28. FROM (
  29.          SELECT pa.art_num
  30.               , pa.brand_id
  31.               , pa.price_torg
  32.               , pa.avalaible_gen
  33.          FROM PA_DR AS pdr
  34.                   LEFT JOIN prices_all AS pa ON pdr.pd_pa_id = pa.id
  35.  
  36.                   INNER JOIN PA_SM_DR AS psd
  37.                              ON psd.psd_pa_id = pa.id
  38.                                  AND psd.psd_dr_id = :DOK_RAZDEL_ID
  39.                                  AND psd.psd_sm_id = :CAR_ID
  40.  
  41.  
  42.                   LEFT JOIN
  43.                   (
  44.                       SELECT *
  45.                       FROM (
  46.                                SELECT *
  47.                                FROM prices_all_chars pac1
  48.                                WHERE pac1.pa_id = pa.id
  49.                                  AND (pac1.seo_model_id IS NULL
  50.                                    OR pac1.seo_model_id = 304
  51.                                    )
  52.                                ORDER BY pac1.seo_model_id DESC
  53.                            ) as pac2
  54.                       GROUP BY pac2.pa_id
  55.                   ) AS pac ON pac.pa_id = pa.id
  56.          WHERE pdr.pd_dr_id = :DOK_RAZDEL_ID
  57.            AND (pa.price_torg >= 503 OR pa.avalaible_gen = 1)
  58.            AND (JSON_CONTAINS(pac.chars,'1332', '$."47"'))
  59.          ORDER BY pa.price_torg
  60.      ) AS t
  61.  
  62.  
  63. SELECT
  64.     IF(
  65.                 COUNT(DISTINCT IF(t.avalaible_gen IN(0, 1), CONCAT(t.art_num, t.brand_id), NULL)) > 0,
  66.                 COUNT(DISTINCT IF(t.avalaible_gen IN(0, 1), CONCAT(t.art_num, t.brand_id), NULL)),
  67.                 COUNT(DISTINCT IF(t.avalaible_gen = 2, CONCAT(t.art_num, t.brand_id), NULL))
  68.         ) AS countArticles
  69.      , IFNULL (
  70.         MIN(IF (t.avalaible_gen IN(0, 1), t.price_torg, NULL)),
  71.         MIN(IF (t.avalaible_gen IN(2), t.price_torg, NULL))
  72.     ) AS minPriceArticles
  73.      , IFNULL(
  74.         MAX(IF (t.avalaible_gen IN(0, 1), t.price_torg, NULL)),
  75.         MAX(IF (t.avalaible_gen IN(2), t.price_torg, NULL))
  76.     ) AS maxPriceArticles
  77.      , IFNULL (
  78.         MIN(IF (t.avalaible_gen IN(0, 1), t.price_torg, NULL)),
  79.         MIN(IF (t.avalaible_gen IN(2), t.price_torg, NULL))
  80.     ) AS minPriceSection
  81.      , IFNULL(
  82.         MAX(IF (t.avalaible_gen IN(0, 1), t.price_torg, NULL)),
  83.         MAX(IF (t.avalaible_gen IN(2), t.price_torg, NULL))
  84.     ) AS maxPriceSection
  85.      , IF(
  86.             COUNT(DISTINCT IF(t.avalaible_gen IN(0, 1), CONCAT(t.art_num, t.brand_id), NULL)) > 0,
  87.             1,
  88.             0
  89.     ) AS allAvailable
  90. FROM (
  91.          SELECT pa.art_num
  92.               , pa.brand_id
  93.               , pa.price_torg
  94.               , pa.avalaible_gen
  95.          FROM PA_DR AS pdr
  96.                   LEFT JOIN prices_all AS pa ON pdr.pd_pa_id = pa.id
  97.  
  98.                   INNER JOIN PA_SM_DR AS psd
  99.                              ON psd.psd_pa_id = pa.id
  100.                                  AND psd.psd_dr_id = :DOK_RAZDEL_ID
  101.                                  AND psd.psd_sm_id = :CAR_ID
  102.  
  103.  
  104.                   LEFT JOIN
  105.                   (
  106.                       SELECT *
  107.                       FROM (
  108.                            SELECT *
  109.                            FROM prices_all_chars pac1
  110.                            where pac1.pa_id = pa.id AND (pac1.seo_model_id IS NULL
  111.                                OR pac1.seo_model_id = 304)
  112.  
  113.                            ORDER BY pac1.seo_model_id DESC
  114.                        ) as pac2
  115.                       GROUP BY pac2.pa_id
  116.                   ) AS pac ON pac.pa_id = pa.id
  117.          WHERE pdr.pd_dr_id = :DOK_RAZDEL_ID
  118.            AND (pa.price_torg >= 503 OR pa.avalaible_gen = 1)
  119.            AND (JSON_CONTAINS(pac.chars,'1332', '$."47"'))
  120.          ORDER BY pa.price_torg
  121.      ) AS t
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top