| 323 | | |
| 324 | | == 10. Месечен преглед на набавни нарачки (последни 12 месеци) == |
| 325 | | |
| 326 | | Цел: Овој query прави агрегатен месечен извештај за набавките во последните 12 месеци. |
| 327 | | Се прикажува вкупен број на нарачки, вкупно нарачана количина, примена количина и количина што сe уште не е примена, по добавувач и магацин. |
| 328 | | |
| 329 | | {{{#!sql |
| 330 | | SELECT |
| 331 | | TO_CHAR(date_trunc('month', po.order_date), 'YYYY-MM') AS order_month, |
| 332 | | w.name AS warehouse_name, |
| 333 | | sup.name AS supplier_name, |
| 334 | | COUNT(DISTINCT po.po_id) AS total_orders, |
| 335 | | SUM(poi.quantity) AS total_ordered_quantity, |
| 336 | | SUM(poi.received_quantity) AS total_received_quantity, |
| 337 | | SUM(poi.quantity - poi.received_quantity) AS total_pending_quantity |
| 338 | | FROM purchase_order po |
| 339 | | JOIN purchase_order_item poi ON po.po_id = poi.po_id |
| 340 | | LEFT JOIN supplier sup ON po.supplier_id = sup.supplier_id |
| 341 | | JOIN warehouse w ON po.warehouse_id = w.warehouse_id |
| 342 | | WHERE po.order_date >= date_trunc('month', CURRENT_DATE) - INTERVAL '11 months' |
| 343 | | GROUP BY order_month, w.name, sup.name |
| 344 | | ORDER BY order_month DESC; |
| 345 | | }}} |
| 346 | | |
| 347 | | '''Релациона алгебра:''' |
| 348 | | {{{ |
| 349 | | γ warehouse_name, supplier_name ; COUNT(po_id)->total_orders, SUM(quantity)->total_ordered_quantity, SUM(received_quantity)->total_received_quantity, SUM(pending)->total_pending_quantity ( |
| 350 | | π po_id, warehouse_name, supplier_name, quantity, received_quantity, quantity - received_quantity -> pending ( |
| 351 | | ( |
| 352 | | ( |
| 353 | | purchase_order |
| 354 | | ⋈ purchase_order_item |
| 355 | | ) |
| 356 | | ⟕ ρ name->supplier_name (supplier) |
| 357 | | ) |
| 358 | | ⋈ ρ name->warehouse_name (warehouse) |
| 359 | | ) |
| 360 | | ) |
| 361 | | }}} |
| 362 | | |