Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Gestione di valori negativi con sql

Non sembra che tu ottenga molte risposte, quindi ecco qualcosa se non otterrai il giusto "come farlo in puro SQL". Ignora questa soluzione se c'è qualcosa di SQLish:è solo una codifica difensiva, non elegante.

Se si desidera ottenere una somma di tutti i dati con la stessa stagione, perché eliminare i record duplicati:basta portarlo all'esterno, eseguire un ciclo foreach, sommare tutti i dati con lo stesso valore della stagione, aggiornare la tabella con i valori corretti ed eliminare le voci non necessarie. Ecco uno dei modi per farlo (pseudocodice):

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]