Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199

выборка из sql

09.07.2013, 17:58. Показов 1367. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть таблица (реестр) со след столбцами id, name, целевой_код, сумма. Мне нужно сделать выборку так чтобы получилась след таблица в строках был namt, столбцы это целевые коды, а значения это сумма. Например:
___________ Целевой код 1 l Целевой код 2 l Целевой код 3 l
name1 l Сум.n1 ЦК1 l Сум.n1 ЦК2 l Сум.n1 ЦК3 l
name2 l Сум.n2 ЦК1 l Сум.n2 ЦК2 l Сум.n2 ЦК3 l
name3 l Сум.n3 ЦК1 l Сум.n3 ЦК2 l Сум.n3 ЦК3 l
и т д ...

где сум n1ЦК1 - сумма пользователя name по целевому коду x
Возможно сделать такую выборку?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.07.2013, 17:58
Ответы с готовыми решениями:

SQL выборка
Привет нужна помощь, не знаю как написать в одном запросе. Нужно что вывод был как на картинке. ( Условие как на примере если id=1 то id...

Выборка в sql
Доброго времени суток! имеется таблица на mssql server 2000 с полями :Номер_отдела,ID сотрудника, Фамилия сотрудника, вид_техники_1,...

Выборка SQL
Имеется таблица по ссылке ниже нужно написать запрос, который определяет все пары номеров поставщиков, такие что оба поставщика поставляют...

12
 Аватар для Crast
72 / 72 / 5
Регистрация: 10.02.2013
Сообщений: 434
09.07.2013, 18:27
Если количество целевых кодов ограничено, то это делается так:
MySQL
1
2
3
4
5
6
7
select name,
    max(IF(code=1, summa, NULL)) as code1,
    max(IF(code=2, summa, NULL)) as code2,
    max(IF(code=3, summa, NULL)) as code3 FROM
       (select id, name, code,summa 
        from tab ) as x
GROUP BY id,name
Думаю здесь все понятно.
1
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
09.07.2013, 18:34  [ТС]
Crast, несовсем.... зачем max?? Может я и полный нуб.... просто именно с такой формулировкой не сталкивался... макс - это максимум?
0
 Аватар для Crast
72 / 72 / 5
Регистрация: 10.02.2013
Сообщений: 434
09.07.2013, 18:44
Цитата Сообщение от lemuriec Посмотреть сообщение
Crast, несовсем.... зачем max?? Может я и полный нуб.... просто именно с такой формулировкой не сталкивался... макс - это максимум?
Если по одному коду у тебя несколько значений, то нужно обязательно sum, если одно, то без разницы, главное опустить NULL.
0
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
09.07.2013, 19:00  [ТС]
Crast, нет...
PHP
1
max(IF(code=1, summa, NULL)) as code1,
что означает max???
0
 Аватар для Crast
72 / 72 / 5
Регистрация: 10.02.2013
Сообщений: 434
09.07.2013, 19:16

Не по теме:

Это тоже не смешно


Во внутреннем запросе у тебя будет
ид1 имя1 код1 1
ид1 имя1 код2 2
ид1 имя1 код3 3

Внешний без максимального и группировки выберет так
имя1 1 NULL NULL
имя1 NULL 2 NULL
имя1 NULL NULL 3

группировка и агрегатная функция(max) уберет все NULL и результат будет
имя1 1 2 3
1
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
10.07.2013, 17:29  [ТС]
нет не то...ммм...давай логическим путем. я делаю запрос к БД.. общий...через php
SQL
1
SELECT * FROM таблица
создается, например, массив $data . как теперь из массива выбрать значения в формате
______ Целевкод 1 l Целевкод 2 l Целевкод 3 l
name1 l Сум.n1 ЦК1 l Сум.n1 ЦК2 l Сум.n1 ЦК3 l
name2 l Сум.n2 ЦК1 l Сум.n2 ЦК2 l Сум.n2 ЦК3 l
name3 l Сум.n3 ЦК1 l Сум.n3 ЦК2 l Сум.n3 ЦК3 l

То есть надо чтоб name повторялся 1 раз, целкод тож 1 раз...но являлся названием столбцов, а значения сумма по целевому коду для пользователя name.... возможно так в пхп вывести? в икселе это делается в сводных таблицах...
0
 Аватар для Crast
72 / 72 / 5
Регистрация: 10.02.2013
Сообщений: 434
10.07.2013, 17:44
Цитата Сообщение от lemuriec Посмотреть сообщение
создается, например, массив $data . как теперь из массива выбрать значения в формате
Это тебе в раздел php надо. Я тебе готовое решение на mysql предложил. У тебя в массиве $data будут именно нужные значения, если сделаешь, как я написал.
0
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
10.07.2013, 17:48  [ТС]
Crast, Я сделал как ты говорил... он мне выдал миллион строк...
0
 Аватар для Crast
72 / 72 / 5
Регистрация: 10.02.2013
Сообщений: 434
10.07.2013, 18:08
Цитата Сообщение от lemuriec Посмотреть сообщение
Crast, Я сделал как ты говорил... он мне выдал миллион строк...
Из Group By убери id. Плохой вариант делать без справочных таблиц.
0
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
10.07.2013, 20:51  [ТС]
Crast, вот смотри... твой запрос
MySQL
1
2
3
4
5
6
7
select org_name,
    max(IF(dopek=221100, now_summ, NULL)) as c221100,
    max(IF(dopek=223102, now_summ, NULL)) as c223102,
    max(IF(dopek=226600, now_summ, NULL)) as c226600 FROM
       (select org_name, dopek,now_summ 
        from kr_reestr ) as x
GROUP BY org_name
Он вроде работает и делает как я хочу...НО... выбирает только максимальные значения. у меня у одного org_name может быть несколько сумм по одному dopek. как сделать так чтоб он их суммировал?
0
 Аватар для Crast
72 / 72 / 5
Регистрация: 10.02.2013
Сообщений: 434
10.07.2013, 21:48
Ты сам говорил, что не повторяются)
MySQL
1
2
3
4
5
6
7
select org_name,
    sum(IF(dopek=221100, now_summ, NULL)) as c221100,
    sum(IF(dopek=223102, now_summ, NULL)) as c223102,
    sum(IF(dopek=226600, now_summ, NULL)) as c226600 FROM
       (select org_name, dopek,now_summ 
        from kr_reestr ) as x
GROUP BY org_name
Добавлено через 3 минуты
Вот я писал очень важно было это прочитать, хотя я не подозревал, что ты не знаешь о агрегатных функциях, и когда увидел нет, то подумал, что у тебя одно значение)
Цитата Сообщение от Crast Посмотреть сообщение
Если по одному коду у тебя несколько значений, то нужно обязательно sum, если одно, то без разницы, главное опустить NULL.
1
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
10.07.2013, 23:24  [ТС]
Crast, Чувак...че сказать... респект тебе)))) получилось)) спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.07.2013, 23:24
Помогаю со студенческими работами здесь

Выборка по id в sql
Приветствую. Не могу додуматься и найти на просторах интернета и форума информацию о том, как сделать правильную выборку в sql по ключевым...

SQL выборка
Привет всем!!!! С прошедшим праздником!!!!!!! И легкой работы .... Можно задать вопросик один, что-то не получается написать SQL запрос :...

Выборка в Sql
Помогите пожалуйста сделать запрос на выборку товаров (Tover.name) которые продавались на протяжении месяца. Какая ф-я месяца? и как можно...

Выборка SQL
Имеется таблица по ссылке ниже нужно написать запрос, который находит все пары городов, для которых поставщик из первого города поставляет...

С# SQL выборка по дате
В таблице Shorts колонка MeasureDate имеет тип datetime Пишу запрос DateTime curr = DateTime.Now.AddMinutes(-15); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru