sql >> Database >  >> RDS >> Sqlserver

Negatieve waarden afhandelen met sql

Je lijkt niet veel antwoorden te krijgen - dus hier is iets als je niet de juiste 'how-to do it in pure SQL' krijgt. Negeer deze oplossing als er iets SQL-achtigs is - het is gewoon een defensieve codering, niet elegant.

Als u een som van alle gegevens met hetzelfde seizoen wilt krijgen, waarom zou u dan dubbele records verwijderen - haal het gewoon naar buiten, voer een foreach-lus uit, som alle gegevens op met dezelfde seizoenswaarde, werk de tabel bij met de juiste waarden en verwijder onnodige invoer. Hier is een van de manieren om het te doen (pseudocode):

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. dyld:luie symboolbinding mislukt voor php oic8 op Apple M1

  2. MySQL MATCH werkt niet met twee tekens?

  3. complexe query kost te veel tijd om over te zetten

  4. Hoe rijen naar kolommen te transponeren op basis van tijdsintervallen in MYSQL