Advertisement
JanuszKowalski123

Czy jest możliwe przyjęcie zamówienia - czy uruchomione urządzenia będą wstanie wygenerować oczekiwa

Apr 24th, 2024 (edited)
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.25 KB | None | 0 0
  1. "Czy jest możliwe przyjęcie zamówienia - czy uruchomione urządzenia będą wstanie wygenerować oczekiwaną energię" - Aby sprawdzić, czy istnieje możliwość przyjęcia zamówienia dla każdego zamówienia, musimy zsumować moc generowaną przez urządzenia, których status jest równy 0 (czyli działających) i porównać ją z oczekiwaną ilością energii w zamówieniach.
  2.  
  3. ###########################################################
  4. DECLARE @oczekiwana_energia DECIMAL(18,0);
  5. DECLARE @customer_order_id INT;
  6. DECLARE @wygenerowana_energia DECIMAL(18,0);
  7.  
  8. DECLARE orders_cursor CURSOR FOR
  9. SELECT customer_order_id, customer_order_amount_of_energy
  10. FROM Customers_Orders;
  11.  
  12. OPEN orders_cursor;
  13. FETCH NEXT FROM orders_cursor INTO @customer_order_id, @oczekiwana_energia;
  14.  
  15. WHILE @@FETCH_STATUS = 0
  16. BEGIN
  17.     SET @wygenerowana_energia = NULL;
  18.  
  19.     SELECT @wygenerowana_energia = SUM(device_power)
  20.     FROM Renewable_Energy_Devices
  21.     WHERE device_status = 0;
  22.  
  23.     IF (@wygenerowana_energia >= @oczekiwana_energia)
  24.         PRINT 'Możliwe jest przyjęcie zamówienia o numerze ' + CAST(@customer_order_id AS VARCHAR(50));
  25.     ELSE
  26.         PRINT 'Nie można przyjąć zamówienia o numerze ' + CAST(@customer_order_id AS VARCHAR(50)) + ' - brak wystarczającej ilości energii';
  27.  
  28.     FETCH NEXT FROM orders_cursor INTO @customer_order_id, @oczekiwana_energia;
  29. END
  30.  
  31. CLOSE orders_cursor;
  32. DEALLOCATE orders_cursor;
  33. ###################################################################
  34.  
  35. To zapytanie wykonuje następujące czynności:
  36.  
  37. Deklaruje zmienną @oczekiwana_energia, która przechowuje oczekiwaną ilość energii w zamówieniu.
  38. Deklaruje zmienną @customer_order_id, która przechowuje identyfikator zamówienia.
  39. Deklaruje zmienną @wygenerowana_energia, która przechowuje sumaryczną moc urządzeń odnawialnych, które są w stanie wygenerować energię.
  40. Tworzy kursor, aby iterować przez wszystkie zamówienia w tabeli Customers_Orders.
  41. Dla każdego zamówienia z tabeli, oblicza sumaryczną moc urządzeń o statusie 0 (działających) z tabeli Renewable_Energy_Devices.
  42. Porównuje sumaryczną moc urządzeń z oczekiwaną ilością energii w zamówieniu.
  43. Wyświetla odpowiedni komunikat dla każdego zamówienia w zależności od wyniku porównania.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement