
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.01.2019, 13:37
|
|||
|---|---|---|---|
Выборка из одной таблицы в два запроса |
|||
|
#18+
Здравствуйте! есть табличка test name text petr AS-45 petr AS-44 petr As-48 saha As-50 conya AS-54 cola AS-87 cola As-88 cola As-89 нужно вывести name As AS petr 1 1 saha 1 0 conya 0 1 cola 1 1 как я только не крутил, не получается максимум что получается name As AS petr 0 1 petr 1 0 saha 1 0 conya 0 1 cola 0 1 cola 1 0 Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.01.2019, 13:45
|
|||
|---|---|---|---|
Выборка из одной таблицы в два запроса |
|||
|
#18+
21Petro21как я только не крутилА как? 21Petro21максимум что получаетсяЕсли уж совсем тупо, то пропустить этот набор строк через группировку по name, а столбцы через агрегирующую функцию MAX(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.01.2019, 13:49
|
|||
|---|---|---|---|
Выборка из одной таблицы в два запроса |
|||
|
#18+
Вот как пробовал. select M1.NameManager, M1.CompanyNameAlt, M1.cnt1 as f1, M2.cnt1 as f2 From (select NameManager, CompanyNameAlt, count(*) as cnt1 from Manager, Firm, ListRn where Manager.Id = Firm.ManagerId and Firm.Id = ListRn.FirmId and Rn LIKE 'Аро%' and CompanyNameAlt = CompanyNameAlt group by NameManager, CompanyNameAlt ) M1, (select NameManager, CompanyNameAlt, count(*) as cnt1 from Manager, Firm, ListRn where Manager.Id = Firm.ManagerId and Firm.Id = ListRn.FirmId and Rn LIKE 'АРО%' and CompanyNameAlt = CompanyNameAlt group by NameManager, CompanyNameAlt ) M2 where M1.NameManager = M2.NameManager and M1.CompanyNameAlt = M2.CompanyNameAlt Но в таком случае я не вижу строки типа (из примера выше) name As AS saha 1 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.01.2019, 15:15
|
|||
|---|---|---|---|
Выборка из одной таблицы в два запроса |
|||
|
#18+
Код: sql 1. 2. 3. Однако совпадающие с точностью до регистра имена полей - это грабли... обратиться к нужному полю получится только позиционно, по имени не выйдет. И Collation поля text обязан быть регистрочувствительным - если не так, надо явно включить регистрозависимость оператора сравнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.01.2019, 15:35
|
|||
|---|---|---|---|
Выборка из одной таблицы в два запроса |
|||
|
#18+
Akina, спасибо огромное! Но остался вопрос, почему с "count(text LIKE 'As%')" не работает. вернее работает, но выводит одинаковые данные в оба столбца? BINARY использовал для получения 1 и 0 (есть или нет). Сумма мне тоже пойдет, применю if (x > 0, '1', '0') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.01.2019, 15:37
|
|||
|---|---|---|---|
Выборка из одной таблицы в два запроса |
|||
|
#18+
С чувствительностью к регистру можно так даже на Collation *ci* Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.01.2019, 15:41
|
|||
|---|---|---|---|
Выборка из одной таблицы в два запроса |
|||
|
#18+
Однако, именовать выводимые поля одинаково (в регистронезависимом контексте) `As` и `AS` не самое лучшее решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.01.2019, 15:51
|
|||
|---|---|---|---|
Выборка из одной таблицы в два запроса |
|||
|
#18+
21Petro21почему с "count(text LIKE 'As%')" не работает. вернее работает, но выводит одинаковые данные в оба столбца?Читать Operator LIKE до полного вразумления. Особое внимание - слову COLLATE . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1829338]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 142ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...