Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: запрос на сумму
 
 автор: ZeeG   (20.10.2011 в 20:57)   письмо автору
 
 

Добрый день.
Пожалуйста, помогите решить. Есть таблица в ней 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


Спасибо

  Ответить  
 
 автор: cheops   (21.10.2011 в 15:21)   письмо автору
 
   для: ZeeG   (20.10.2011 в 20:57)
 

>Как проверить является ли суммарное значение в USD NULL?
Возможно вас заинтересуют ключевые слова IS NULL и IS NOT NULL?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования