![]() |
|
Модераторы: skyboy |
![]()
|
|
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Я слышал, что сводная таблица Excel использует совсем простенькие sql-запросы. Но она умеет то, чего не умею я, а именно:
Есть таблица со списком клиентов: Иванов, Петров и т. д. (поля id, fio) Есть таблица с их телефонами и комментариями к телефону - домашний, мобильный и т. д. (поля id, client_id, phone_number, description). Исходные данные: Таблица 1 id fio 1 Иванов 2 Петров 3 Сидоров Таблица 2 id client_id phone_number description 1 1 1234567 домашний 2 1 7654321 мобильный 3 2 9876543 рабочий 4 2 3456789 домашний 5 3 2545684 мобильный 6 3 3254942 рабочий Результат fio домашний мобильный рабочий Иванов 1234567 7654321 Петров 3456789 9876543 Сидоров 2545684 3254942 В Excel из простой таблицы с помощью сводных таблиц такие вещи делаются довольно легко, а вот как такое написать на sql? -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Читаем справку по Pivot Query - если твой диалект SQL их поддерживает.
Вот, к примеру, что состряпал Аксесс:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
развернуть в результат, при том, что список "описаний" заранее неизвестен?
только средствами sql без использования динамических запросов невозможно. |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
А динамические запросы - это что?
Забыл сказать - база PostgreSQL. -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
RockClimber, и все-так уточни: у тебя список значений в поле "примечания" ограничен и заранее определен? или там может быть все, что угодно?
дык, Excel - не просто (довольно простое функционально)СУБД, это ещё и клиент для обработки и отображения. |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Теоретически - все что угодно. На практике - порядка 20 разных значений, но сколько точно, я не знаю. В принципе, можно выдрать все возможные значения заранее и считать, что их число конечно и известно.
-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Нашел описание постгришной функции crosstab здесь (пункт F.29.1.4.).
Полный текст запроса:
Возникает ошибка "ERROR: function crosstab("unknown", "unknown") does not exist". Или этот вопрос лучше в подфорум по Postgre задавать? -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |