| Добрый день.
Пожалуйста, помогите решить. Есть таблица в ней 1 колонка (price) с ценами в EUR и USD.
CREATE TABLE IF NOT EXISTS `elRep` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_ag` int(11) NOT NULL DEFAULT '0',
`price` float(10,2) DEFAULT NULL,
`id_val` int(11) NOT NULL DEFAULT '0',
`year` int(6) DEFAULT NULL,
`month` int(6) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1459 ;
|
пример записей
id_ag - id компании
id_val - id валюты
price - сумма
year - год сделки
month - месяц сделки
INSERT INTO `elRep` (`id`, `id_ag`, `price`, `id_val`, `year`, `month`) VALUES
(1, 1, 0.00, 1, 2009, 4),
(2, 1, 200.00, 2, 2009, 7),
(3, 1, 565.00, 2, 2009, 5),
(4, 3, 590.45, 1, 2009, 3),
(5, 3, 1170.90, 2, 2009, 1),
(6, 3, 2858.00, 1, 2009, 11),
(7, 4, 0.00, 2, 2009, 12),
(8, 4, 2456.00, 1, 2009, 12),
(9, 5, 2796.00, 2, 2009, 7),
(10, 6, 315.00, 2, 2009, 2),
(11, 6, 586.00, 2, 2009, 4),
(12, 6, 751.03, 2, 2009, 5),
(13, 6, 1180.00, 1, 2009, 6),
(14, 6, 1557.00, 2, 2009, 11),
(15, 6, 2675.86, 1, 2009, 5),
(16, 6, 2870.00, 1, 2009, 12), ....
|
нужно выбрать по каждой компании общую сумму по каждой валюте (это я сделал) и сделать условную единицу приравняв USD к EUR по курсу 1.5.
Вся проблема в том, что USD или EUR может быть NULL и выборка выходит как NULL
вот мой запрос. Как проверить является ли суммарное значение в USD NULL?
$year - номер года для выборки
$c - значение курса перевода доллара в евро
$top - кол-во копманий для вывода
SELECT DISTINCT e.id_ag, (
SELECT sum( price ) FROM elRep
WHERE id_ag = e.id_ag
AND id_val = '2' AND year = '".$year."'
) AS totE,
(
SELECT sum( price ) FROM elRep
WHERE id_ag = e.id_ag and year = '".$year."'
AND id_val = '1'
) AS totS,
(SELECT
(SELECT sum( price )
FROM elRep
WHERE id_ag = e.id_ag AND id_val = '2' and year = '".$year."')
+
(SELECT sum(price)/$c
FROM elRep
WHERE id_ag = e.id_ag AND id_val = '1' and year = '".$year."')
) AS XTOT,
(
SELECT name
FROM elAgent
WHERE id = e.id_ag
) AS agName
FROM elRep e WHERE year = '".$year."'
ORDER BY XTOT DESC
LIMIT 0,$top
|
Спасибо | |