Changes between Version 2 and Version 3 of Напредни извештаи од базата (SQL и складирани процедури)


Ignore:
Timestamp:
06/26/25 14:56:39 (11 days ago)
Author:
183175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Напредни извештаи од базата (SQL и складирани процедури)

    v2 v3  
    9292Креираме повик до API за предикција на ризична залиха \\
    9393кое е поставено на {{{app.js}}} како {{{/admin/stock-alerts}}}.\\
     94\\
     95{{{#!sql
     96SELECT
     97        p.id_product,
     98        p.product_name,
     99        sz.size_label AS size,
     100        COALESCE(SUM(s.quantity), 0) AS current_stock,
     101        ROUND(AVG(cq.weekly_sales), 2) AS avg_weekly_sales,
     102        CASE
     103          WHEN COALESCE(SUM(s.quantity), 0) <= ROUND(AVG(cq.weekly_sales), 2) THEN 'ИТНО'
     104          ELSE 'Набљудувај'
     105        END AS status
     106      FROM products p
     107      JOIN stock s ON p.id_product = s.id_product
     108      JOIN sizes sz ON s.id_size = sz.id
     109      LEFT JOIN (
     110        SELECT
     111          s.id_product,
     112          s.id_size,
     113          COUNT(*) AS weeks,
     114          SUM(c.quantity)::decimal / COUNT(DISTINCT DATE_TRUNC('week', o.order_date)) AS weekly_sales
     115        FROM contains c
     116        JOIN orders o ON c.id_order = o.id_order
     117        JOIN stock s ON c.id_stock = s.id_stock
     118        WHERE o.order_date >= NOW() - INTERVAL '4 weeks'
     119        GROUP BY s.id_product, s.id_size
     120      ) cq ON cq.id_product = s.id_product AND cq.id_size = s.id_size
     121      GROUP BY p.id_product, p.product_name, sz.size_label
     122      HAVING ROUND(AVG(cq.weekly_sales), 2) IS NOT NULL
     123      ORDER BY status DESC, avg_weekly_sales DESC;
     124    `);
     125}}}
     126\\
    94127Испраќаме авторизирано {{{GET}}} барање до backend за да добиеме податоци\\
    95128за сите продукти и нивната состојба.\\
     
    105138Следни 2 → {{{Набљудувај}}} \\
    106139Останати → {{{Стабилно}}} \\
     140\\
    107141[[Image(prediction.png, height=300px)]]
    108142\\