sql >> Base de Datos >  >> RDS >> Sqlserver

Manejo de valores negativos con sql

Parece que no obtiene muchas respuestas, así que aquí hay algo si no obtiene el 'cómo hacerlo en SQL puro' correcto. Ignore esta solución si hay algo SQLish:es solo una codificación defensiva, no elegante.

Si desea obtener una suma de todos los datos con la misma temporada, ¿por qué eliminar registros duplicados? Simplemente sáquelo, ejecute un bucle foreach, sume todos los datos con el mismo valor de temporada, actualice la tabla con los valores correctos y elimine las entradas innecesarias. Esta es una de las formas de hacerlo (pseudocódigo):

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]