Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Добрый день. Не могу сообразить, как мне получить выборку нужных данных. Имеется две таблицы xsub и dsub, полученные на предыдущем этапе выборки. Их можно свести в одну с признаком принадлежности, если это упростит решение. Требуется получить таблицу с записями из трех полей. Первое поле - cell. Это должно быть full join соответствующих полей этих таблиц. Это значение в дальнейшем (или сразу) будет заменено на поле cellname из специальной таблицы listcell, которая имеет список всех возможных значений cell. Второе поле - количество imsi из таблицы dsub для каждого значения cell. Третье поле - количество imsi из таблицы xsub для каждого значения cell, но только тех, которые не встречаются в таблице dsub. VFP9S1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2013, 09:12 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Кузнецов Игорьfull join соответствующих полейДжойнить можно таблицы, а не поля. Наверное, имелось в виду, что в этом роле должны быть все cell - и из первой, и из второй таблицы. Кузнецов Игорьколичество imsi из таблицы dsubколичество различных imsi, наверное? Если мои допущения верны, то Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2013, 10:10 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
tanglir Джойнить можно таблицы, а не поля. Наверное, имелось в виду, что в этом роле должны быть все cell - и из первой, и из второй таблицы. Да, конечно. tanglir количество различных imsi, наверное?. Они уже уникальны в пределах значения cell. Обеспечивается предыдущей выборкой. Буду изучать предложенный вариант. Спасибо. После рихтовки получилось: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Результат есть, буду анализировать его правдоподобность. Но сам бы я такой каскад не осилил. Еще раз спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2013, 12:09 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Кузнецов ИгорьВторое поле - количество imsi из таблицы dsub для каждого значения cell. Кузнецов Игорь Код: sql 1. 2. 3. 4. Нет, это проще записывается. Подсказка: нужно убрать одну строчку :) Хотя на результат, в общем-то, не повлияет, но работать будет быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2013, 13:17 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, но я не могу понять. Одну строку я уже убирал (WHERE ...). А пока я прикрутил сюда обращение еще к одной таблицы, чтобы брать не только код для cell, но и название cell. Вот только связка корректно заработала только при VAL(listcell.cellno)=VAL(cells.cell). Иначе отбирались только значения для трехзначных cell (т.е. больше 100) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Но что-то меня терзают смутные сомнения. Некоторые значения оказались заменены звездочками. Значит, напортачил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2013, 14:06 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Третье поле почему-то получает размерность N(1). Умещаются только одноразрядные значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2013, 14:27 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, четвертое согласно приведенному варианту. То есть nvl(c2.cnt,0). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2013, 14:29 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Кузнецов ИгорьПрошу прощения, но я не могу понять. Одну строку я уже убирал (WHERE ...).Хорошо, намекну толще. Подзапрос "с1" должен обращаться только к одной таблице (судя по заданию). Нужен ли в таком подзапросе джойн со второй таблицей? Кузнецов ИгорьТретье поле почему-то получает размерность N(1). Умещаются только одноразрядные значения.Неважно, какое по счёту. Используйте cast(... as Numeric(желаемый_размер)) Просто фокс определяет размер поля результата по первому выбранному значению этого поля. Получилось там число от 1 до 9 - значит, N(1), и всё тут :) А cast() позволяет указать, какой разрядности поле должно быть "на самом деле". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2013, 16:00 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Согласно Вашим подсказкам внес нужные изменения. В итоге получился такой запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2013, 10:10 |
|
||
|
Помогите составить запрос
|
|||
|---|---|---|---|
|
#18+
Не за что. Только ещё одно маленькое замечание:Кузнецов Игорь Код: sql 1. 2. 3. LEFT уберите. Условие в where на поле из присоединяемой справа таблицы(listcell) как правило вырождает left join в inner join. Логически вырождает, а оптимизатор всё равно корячится, пытаясь лефт организовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2013, 10:41 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=38162472&tid=1583153]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 414ms |

| 0 / 0 |
