Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.235.249.219] |
|
Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
есть 2 таблицы(SQL Server 2005)
Как прописать соответствие м/у ними, чтобы можно было вычислить стоимость каждого звонка, и классифицировать звонки по виду связи Первая(соответствие кода выхода стоимости за минуту) *********************************************************************** Код для связи *Вид Связи*стоимость за мин.* *********************************************************************** 91 * город * 0 * 92 * город * 0 * 93 * город * 0 * 94 * город * 0 * 95 * город * 0 * 96 * город * 0 * 97 * город * 0 * 98 * междугородный вызов*30* 99 * город * 0 * 90 * спец. службы* 0 * 233 * область * 123 * 234 * область * 45 * 16001 * новый офис * 23 * 16002 * новый офис * 23 * 17003 * склад * 0 * 51 * внутренний звонок*0 * 52 * внутренний звонок*0 * ********************************************************************** Вторая(длительность телефонных разговоров) *************************************** Набранный номер*длительность* *************************************** 989273698541 * 2 * 902 * 7 * 2336596 * 85 * 2348965874 * 5 * 51365 * 51 * и так далее |
Сообщ.
#2
,
|
|
|
SELECT SUM(b.[длительность] * a.[стоимость за мин]) FROM table2 b JOIN table1 a ON LEFT(b.Набранный номер, LEN(a.[Код для связи])) = a.[Код для связи] |
Сообщ.
#3
,
|
|
|
Цитата Sam83@list.ru @ Вторая(длительность телефонных разговоров) А длительность в минутах и без секунд? |
Сообщ.
#4
,
|
|
|
на самом деле пример несколько абстрактный.
Проблема связать 2 таблицы соотношением, при условии что в таблице 1 будет "маска"(только первые цифры из звонков 2ой таблицы) если бы код выходя был фиксированной длинны - проблем бы не было, из каждого номера 2ой таблицы взял, скажем, первые 3 цифры и содал бы доп. столбик, и связал бы 2 таблицы. НО!!! код выхода переменной длины. |
Сообщ.
#5
,
|
|
|
Цитата Sam83@list.ru @ НО!!! код выхода переменной длины. А как определить что это "код" а далее телефон? |
Сообщ.
#6
,
|
|
|
Цитата Sam83@list.ru @ Проблема связать 2 таблицы соотношением, при условии что в таблице 1 будет "маска"(только первые цифры из звонков 2ой таблицы) MIF дал рабочий вариант. Для связывания. Возможен также вариант для отбора по маске: WHERE b.Набранный номер LIKE a.[Код для связи] + '%' |
Сообщ.
#7
,
|
|
|
Цитата Bas @ Цитата Sam83@list.ru @ НО!!! код выхода переменной длины. А как определить что это "код" а далее телефон? Коды уникальны, т.е. если в начале номера 98 - то набранный номер(сколько бы там не было цифр) "междугородный вызов", а его стоимость 30 за еденицу времени. |