SQL-Indifferente restituisce un valore quando le colonne vengono moltiplicati

StackOverflow https://stackoverflow.com/questions/1828825

  •  11-09-2019
  •  | 
  •  

Domanda

Ho 3 colonne in mia tabella db, ho bisogno di moltiplicare colonna, itm_count & itm_price e in uscita il totale per un dato id (itm_id).

SELECT sum(itm_price * itm_count) as total FROM ods_temporder WHERE itm_id='11'

Ho cercato di farlo usando la query SQL sopra, ma il risultato è stato nullo. Quello che sembra essere il problema qui?

È stato utile?

Soluzione

Che cosa questo dato?

SELECT itm_price, itm_count FROM ods_temporder WHERE itm_id='11'

È uno dei itm_price o itm_count NULL? Hai righe per itm_id = 11?

Altri suggerimenti

Prova:

SELECT SUM(COALESCE(itm_price, 0) * COALESCE(itm_count, 0)) as total 
  FROM ods_temporder 
 WHERE itm_id='11'

COALESCE è uno standard ANSI per trattare con valori NULL - se itm_price o itm_count è nullo, saranno utilizzati zero in questo caso come valore. In caso contrario, o non si dispone di una riga con un valore pari a 11 per la colonna itm_id, o siete alla ricerca per il valore 11 nella colonna sbagliata.

Che cosa significa itm_price e itm_count contengono quando itm_id = 11? È questo SQL Server? Se è così è possibile utilizzare ISNULL per gestire se itm_price o itm_count è nullo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top