SQL-Indifferente restituisce un valore quando le colonne vengono moltiplicati
-
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?
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