0 / 0 / 0
Регистрация: 22.07.2016
Сообщений: 4
1

Сгруппировать данные с разными датами, но одним номером в одну строку

26.07.2016, 15:54. Показов 1165. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
таблица имеет три поля:
id
data
num
1 2016-06-01 1000
2 2016-06-01 1001
3 2016-06-01 1002
MySQL
1
2
3
4
5
6
7
select num, 
if(data="2016-07-01",`status`,null) as "1", 
if(data="2016-07-02",`status`,null) as "2", 
from uchet where  
podr_o="Парк 2" 
group by data,num
order by id DESC
При таком запросе данные с разной датой,
но одинаковыми номерами выведется двумя строками, а как получить одну строку, чтобы сначала шел номер, а потом шли статусы этого номера по датам.
CSS
1
2
3
num    data
         01   02   03   04 
1111   да да нет да
Кроме группировки не знаю, что можно еще использовать.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2016, 15:54
Ответы с готовыми решениями:

Сколькими способами можно выбрать 5 карт так, чтобы 2 из них были с одним номером, а остальные - с разными
Задание: в колоде из 4n карт имеется 4 масти по n карт в каждой. Карты одной масти занумерованы от...

Вывести все значения под одним номером в одну ячейку
Нужно вывести все значения под одним номером в одну ячейку через запятую. Не могу сообразить как...

Сгруппировать строки, а разные значения в столбце записать в одну строку через запятую
Как сделать? :sorry:Все значения по полям совпадают кроме значений в двух (в дальнейшем будет 4...

Сделать разными цветами одну строку ListBox
Private Sub ColoredListBox_DrawItem(ByVal sender As Object, ByVal e As...

2
476 / 239 / 114
Регистрация: 12.05.2016
Сообщений: 647
26.07.2016, 21:30 2
Лучший ответ Сообщение было отмечено dobriy-coder17 как решение

Решение

SQL
1
ORDER BY id DESC
Бесполезно, т.к. у вас поле ID не входит в выборку.

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT num 
,SUM(CASE WHEN DAY(DATA)=1 THEN 1 ELSE 0 END) AS '01'
,SUM(CASE WHEN DAY(DATA)=2 THEN 1 ELSE 0 END) AS '02'
,SUM(CASE WHEN DAY(DATA)=3 THEN 1 ELSE 0 END) AS '03'
,SUM(CASE WHEN DAY(DATA)=4 THEN 1 ELSE 0 END) AS '04'
,SUM(CASE WHEN DAY(DATA)=5 THEN 1 ELSE 0 END) AS '05'
,SUM(CASE WHEN DAY(DATA)=6 THEN 1 ELSE 0 END) AS '06'
,SUM(CASE WHEN DAY(DATA)=7 THEN 1 ELSE 0 END) AS '07'
,SUM(CASE WHEN DAY(DATA)=8 THEN 1 ELSE 0 END) AS '08'
,SUM(CASE WHEN DAY(DATA)=9 THEN 1 ELSE 0 END) AS '09'
.....
..... и т.д и т.п
,SUM(CASE WHEN DAY(DATA)=31 THEN 1 ELSE 0 END) AS '31'
FROM t
GROUP BY num;
Условие на месяц надо накладывать отдельно естественно, а то у вас сложатся ВСЕ дни разных месяцев

Единички и нолики в "Да" и "Нет" превратите сами ?
1
0 / 0 / 0
Регистрация: 22.07.2016
Сообщений: 4
27.07.2016, 07:32  [ТС] 3
Спасибо. Вчера вечером у меня тоже завертелась мысль, что надо использовать что-нибудь из функций в условии
MySQL
1
count,min,max,sum
Единички и нолики в "Да" и "Нет" превратите сами ?
Конечно, это несложно)
Условие на месяц надо накладывать отдельно естественно
Да, сделал с 1 по последнее число месяца в условии where, иначе получается бред.
0
27.07.2016, 07:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2016, 07:32
Помогаю со студенческими работами здесь

Матрица: строку с номером n сделать столбцом с номером n, а столбец с номером n- строкой с номером n
Дана действительная квадратная матрица порядка n. Преобразовать матрицу по следующему правилу:...

Разделить одну строку на несколько частей одним махом
есть строка: //"Stossdämpfer Federbein hinten links Ford MondeoEUR...

Вставка данных разными запросами с разных страниц в одну строку
Здравствуйте! Прошу совета. Задача. Дано: таблица со множеством столбцов id | pole1 | pole2 | ......

Преобразовать матрицу по правилу: строку с номером n сделать столбцом с номером n, а столбец с номером n сделать строкой с номером n
Дана действительная квадратная матрица порядка n. Преобразовать матрицу по правилу: строку с...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru