Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Obsługa wartości ujemnych za pomocą sql

Wydaje się, że nie otrzymujesz zbyt wielu odpowiedzi - więc oto coś, jeśli nie zdobędziesz odpowiedniego „jak to zrobić w czystym SQL”. Zignoruj ​​to rozwiązanie, jeśli jest coś SQL - to tylko kodowanie obronne, a nie eleganckie.

Jeśli chcesz uzyskać sumę wszystkich danych z tego samego sezonu, po co usuwać zduplikowane rekordy - po prostu wynieś to na zewnątrz, uruchom pętlę foreach, zsumuj wszystkie dane z tą samą wartością sezonu, zaktualizuj tabelę odpowiednimi wartościami i usuń niepotrzebne wpisy. Oto jeden ze sposobów na zrobienie tego (pseudokod):

productsArray = SELECT * FROM products
processed = array (associative)
foreach product in productsArray:
  if product[season] not in processed:
    processed[season] = product[quantity]
    UPDATE products SET quantity = processed[season] WHERE id = product[id]
  else:
    processed[season] = processed[season] + product[quantity]
    DELETE FROM products WHERE id = product[id]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dziennik transakcji SQL Server, część 1:Podstawy rejestrowania

  2. Wstaw wiele wierszy do jednej kolumny

  3. Uzyskaj ostateczne nazwy kolumn ze zmiennej tabeli

  4. Używanie SMO do kopiowania bazy danych i danych

  5. Jak używać Top z powiązaniami w SQL Server — samouczek SQL Server / TSQL część 114