SOS
Дата: 04.12.2002 07:16:24
Написал я "супер" запрос
Есть у меня 2 таблицы payphones и talks (таксофоны и разговоры) и в них единое поле tax_number (номер таксофона с которого был разговор)
Мой запрос должен выбирать все разгоовры по каждому из таксофонов, что он собственно и делает, вот только если в talks.tax_number - NULL то эти записи игнорируются хотя должны присутствовать в выводе отдельной строкой
(строка с tax_number = NULL в таблице payphones есть)
Заранее благодарен за советы
Сам Запрос:
select payphones.tax_number, payphones.street, payphones.hourse,
SUM(CASE WHEN talks.take_money is NULL THEN 1 ELSE NULL END) as freecall,
SUM(CASE WHEN talks.take_money is NULL THEN talks.length_talk ELSE NULL END) as freecalltraff,
SUM(CASE WHEN talks.call_number like '8%' and talks.call_number not like '810%' THEN 1 ELSE NULL END) as rule1,
SUM(CASE WHEN talks.call_number like '810%' THEN 1 ELSE NULL END) as rule2,
SUM(CASE WHEN talks.call_number not like '8%' THEN 1 ELSE NULL END) as rule3,
SUM(CASE WHEN talks.call_number like '%' THEN 1 ELSE NULL END) as rule4,
SUM(CASE WHEN talks.call_number not like '8%' THEN CASE WHEN talks.build_code = '1' THEN take_money * 5 ELSE take_money END ELSE NULL END) as rule5,
SUM(CASE WHEN talks.call_number like '8%' and talks.call_number not like '810%' THEN CASE WHEN talks.build_code = '1' THEN take_money * 5 ELSE take_money END ELSE NULL END) as rule6,
SUM(CASE WHEN talks.call_number like '810%' THEN CASE WHEN talks.build_code = '1' THEN take_money * 5 ELSE take_money END ELSE NULL END) as rule7,
SUM ( CASE WHEN talks.build_code = '1' THEN take_money * 5 ELSE take_money END ) as rule8,
SUM(talks.length_talk) as alltime
from payphones
left join talks on payphones.tax_number = talks.tax_number
group by payphones.tax_number, payphones.street, payphones.hourse
guest2002
Дата: 04.12.2002 07:24:00
Еще - в равенстве isnull(p.tax_number, 0) = isnull(t.tax_number, 0).
Вместо 0 - любой код tax_number, которого реально нет в таблице.
SOS
Дата: 04.12.2002 09:39:33
Пытался вместо join использовать WHERE, но результат не тот.
Кстати создавать в payphones строку где payphones = NULL мне бы не хотелось.
Так как же мне быть с этим запросом ?
Есть мысли как вквести эти данные ???
Спасибо.