Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Объединение строк одного столбца

Добрый день. Возникла такая ситуация при которой необходимо сделать объединение строк одного столбца.
Как это можно реализовать? Желательно через запятую.
Спасибо!
Ответ: Хорошо, попробую. Спасибо большое
Вопрос: Объединение столбцов запроса на выборку и перекрестного запроса

Добрый вечер, уважаемые форумчане!Помогите,пожалуйста, с вопросом объединения столбцов перекрестного запроса и обычного запроса на выборку. Перекрестный запрос с переменным количеством столбцов.

Запрос на выборку: (Запрос4)


SELECT DISTINCT Подтип_расх.Подтип_расх,
Nz([Общие],0)+Nz([Не акцептованные],0)+Nz([Прочие],0)+Nz([Летный состав],0)+Nz([Стюарты],0) AS [Сумма затрат],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.№_рейса IS NULL AND Затраты.Прочие IS NULL
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх GROUP BY Подтип_расх.Подтип_расх) AS Общие,

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE (Затраты.Дата_сост_отчета>Затраты.Дата_услуги OR Затраты.Дата_сост_отчета>Format(Затраты.Дата,"mmmm yyyy"))
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS [Не акцептованные],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.Прочие IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS Прочие,

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.КВС IS NOT NULL AND Затраты.Второй_пилот IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS [Летный состав],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.Стюарты IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS Стюарты
FROM Подтип_расх, Затраты
WHERE (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год] OR Затраты.Дата_услуги LIKE [Введите_месяц_год])
AND Затраты.Серийный_ВС=[Введите серийный номер ВС];

Перекрестный запрос: (Запрос2)


PARAMETERS [Введите_месяц_год] Text ( 255 ), [Введите серийный номер ВС] Text ( 255 );
TRANSFORM SUM(Затраты.Сумма) AS [SUM]
SELECT Подтип_расх.Подтип_расх AS [Статьи затрат]
FROM Подтип_расх, Затраты
WHERE Затраты.[№_рейса] IS NOT NULL
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
AND (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год]
OR Затраты.Дата_услуги LIKE [Введите_месяц_год]) AND Затраты.Серийный_ВС=[Введите серийный номер ВС]
GROUP BY Подтип_расх.Подтип_расх
PIVOT Затраты.[№_рейса] & " " & Затраты.а_п_выл & " " & Затраты.Дата;

При подстановке перекрестного запроса в обычный в виде:

SELECT DISTINCT Подтип_расх.Подтип_расх,
Nz([Общие],0)+Nz([Не акцептованные],0)+Nz([Прочие],0)+Nz([Летный состав],0)+Nz([Стюарты],0) AS [Сумма затрат],

(SELECT SUM(Затраты.Сумма) FROM Затраты WHERE Затраты.№_рейса IS NULL AND Затраты.Прочие IS NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх GROUP BY Подтип_расх.Подтип_расх) AS Общие,

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE (Затраты.Дата_сост_отчета>Затраты.Дата_услуги
OR Затраты.Дата_сост_отчета>Format(Затраты.Дата,"mmmm yyyy"))
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS [Не акцептованные],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.Прочие IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS Прочие,

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.КВС IS NOT NULL AND Затраты.Второй_пилот IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS [Летный состав],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.Стюарты IS NOT NULL
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS Стюарты,

(SELECT * FROM Запрос2)
FROM Подтип_расх, Затраты
WHERE (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год]
OR Затраты.Дата_услуги LIKE [Введите_месяц_год])
AND Затраты.Серийный_ВС=[Введите серийный номер ВС];
получаем ошибку "" не распознается ядром СУБД MA как допустимое имя поля или выражения.Я так понимаю при пересечении для перекрестного запроса выборка ничего не дает и из-за этого появляется данная ошибка. Подскажите,пожалуйста,какими методами можно это обойти? Или как то иначе можно получить данный вид отчета. Примерный вид отчета также приложил.

К сообщению приложен файл. Размер - 137Kb
Ответ: clari,
+
эээ панимаш
требует раз'яснения ваш термин

"объединения"

вам чо нада
юнион иль джоин

тк лична маю так
объединениё - юнион
соединениё - джоин

панимаш - эээ



хатяб так представил
+
SELECT DISTINCT Подтип_расх.Подтип_расх,
Nz([Общие],0)+Nz([Не акцептованные],0)+Nz([Прочие],0)+Nz([Летный состав],0)+Nz([Стюарты],0) AS [Сумма затрат],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.№_рейса IS NULL AND Затраты.Прочие IS NULL
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх GROUP BY Подтип_расх.Подтип_расх) AS Общие,

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE (Затраты.Дата_сост_отчета>Затраты.Дата_услуги OR Затраты.Дата_сост_отчета>Format(Затраты.Дата,"mmmm yyyy"))
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS [Не акцептованные],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.Прочие IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS Прочие,

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.КВС IS NOT NULL AND Затраты.Второй_пилот IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS [Летный состав],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.Стюарты IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS Стюарты
FROM Подтип_расх, Затраты
WHERE (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год] OR Затраты.Дата_услуги LIKE [Введите_месяц_год])
AND Затраты.Серийный_ВС=[Введите серийный номер ВС];

Перекрестный запрос: (Запрос2)


PARAMETERS [Введите_месяц_год] Text ( 255 ), [Введите серийный номер ВС] Text ( 255 );
TRANSFORM SUM(Затраты.Сумма) AS [SUM]
SELECT Подтип_расх.Подтип_расх AS [Статьи затрат]
FROM Подтип_расх, Затраты
WHERE Затраты.[№_рейса] IS NOT NULL
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
AND (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год]
OR Затраты.Дата_услуги LIKE [Введите_месяц_год]) AND Затраты.Серийный_ВС=[Введите серийный номер ВС]
GROUP BY Подтип_расх.Подтип_расх
PIVOT Затраты.[№_рейса] & " " & Затраты.а_п_выл & " " & Затраты.Дата;

При подстановке перекрестного запроса в обычный в виде:

SELECT DISTINCT Подтип_расх.Подтип_расх,
Nz([Общие],0)+Nz([Не акцептованные],0)+Nz([Прочие],0)+Nz([Летный состав],0)+Nz([Стюарты],0) AS [Сумма затрат],

(SELECT SUM(Затраты.Сумма) FROM Затраты WHERE Затраты.№_рейса IS NULL AND Затраты.Прочие IS NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх GROUP BY Подтип_расх.Подтип_расх) AS Общие,

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE (Затраты.Дата_сост_отчета>Затраты.Дата_услуги
OR Затраты.Дата_сост_отчета>Format(Затраты.Дата,"mmmm yyyy"))
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS [Не акцептованные],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.Прочие IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS Прочие,

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.КВС IS NOT NULL AND Затраты.Второй_пилот IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS [Летный состав],

(SELECT SUM(Затраты.Сумма) FROM Затраты
WHERE Затраты.Стюарты IS NOT NULL
AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
GROUP BY Подтип_расх.Подтип_расх) AS Стюарты,

(SELECT * FROM Запрос2)
FROM Подтип_расх, Затраты
WHERE (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год]
OR Затраты.Дата_услуги LIKE [Введите_месяц_год])
AND Затраты.Серийный_ВС=[Введите серийный номер ВС];
Вопрос: Объединение столбцов запроса на выборку и перекрестного запроса с переменным количеством столбцов

Добрый день, уважаемые форумчане!Помогите,пожалуйста, с вопросом объединения столбцов перекрестного запроса и обычного запроса на выборку.

Запрос на выборку: (Запрос4)

Код SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SELECT DISTINCT Подтип_расх.Подтип_расх,
 Nz([Общие],0)+Nz([Не акцептованные],0)+Nz([Прочие],0)+Nz([Летный состав],0)+Nz([Стюарты],0) AS [Сумма затрат],
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE Затраты.№_рейса IS NULL AND Затраты.Прочие IS NULL
 AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх GROUP BY Подтип_расх.Подтип_расх) AS Общие,
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE (Затраты.Дата_сост_отчета>Затраты.Дата_услуги OR Затраты.Дата_сост_отчета>Format(Затраты.Дата,"mmmm yyyy"))
 AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 GROUP BY Подтип_расх.Подтип_расх) AS [Не акцептованные], 
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE Затраты.Прочие IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 GROUP BY Подтип_расх.Подтип_расх) AS Прочие, 
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE Затраты.КВС IS NOT NULL AND Затраты.Второй_пилот IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 GROUP BY Подтип_расх.Подтип_расх) AS [Летный состав],
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE Затраты.Стюарты IS NOT NULL AND  Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 GROUP BY Подтип_расх.Подтип_расх) AS Стюарты
FROM Подтип_расх, Затраты
WHERE (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год] OR Затраты.Дата_услуги LIKE [Введите_месяц_год])
 AND Затраты.Серийный_ВС=[Введите серийный номер ВС];
Перекрестный запрос: (Запрос2)

Код SQL
1
2
3
4
5
6
7
8
9
10
PARAMETERS [Введите_месяц_год] Text ( 255 ), [Введите серийный номер ВС] Text ( 255 );
TRANSFORM SUM(Затраты.Сумма) AS [SUM]
SELECT Подтип_расх.Подтип_расх AS [Статьи затрат]
FROM Подтип_расх, Затраты
WHERE Затраты.[№_рейса] IS NOT NULL
 AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 AND (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год]
 OR Затраты.Дата_услуги LIKE [Введите_месяц_год]) AND Затраты.Серийный_ВС=[Введите серийный номер ВС]
GROUP BY Подтип_расх.Подтип_расх
PIVOT Затраты.[№_рейса] & " " & Затраты.а_п_выл & " " & Затраты.Дата;

При подстановке перекрестного запроса в обычный в виде:
Код SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SELECT DISTINCT Подтип_расх.Подтип_расх,
 Nz([Общие],0)+Nz([Не акцептованные],0)+Nz([Прочие],0)+Nz([Летный состав],0)+Nz([Стюарты],0) AS [Сумма затрат],
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты WHERE Затраты.№_рейса IS NULL AND Затраты.Прочие IS NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх GROUP BY Подтип_расх.Подтип_расх) AS Общие,
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE (Затраты.Дата_сост_отчета>Затраты.Дата_услуги
 OR Затраты.Дата_сост_отчета>Format(Затраты.Дата,"mmmm yyyy"))
 AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 GROUP BY Подтип_расх.Подтип_расх) AS [Не акцептованные], 
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE Затраты.Прочие IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 GROUP BY Подтип_расх.Подтип_расх) AS Прочие, 
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE Затраты.КВС IS NOT NULL AND Затраты.Второй_пилот IS NOT NULL AND Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 GROUP BY Подтип_расх.Подтип_расх) AS [Летный состав], 
 
(SELECT SUM(Затраты.Сумма)  FROM Затраты
 WHERE Затраты.Стюарты IS NOT NULL
 AND  Затраты.Подтип_расх=Подтип_расх.Подтип_расх
 GROUP BY Подтип_расх.Подтип_расх) AS Стюарты,
 
(SELECT * FROM Запрос2)
FROM Подтип_расх, Затраты
WHERE (Format(Затраты.Дата,"mmmm yyyy") LIKE [Введите_месяц_год]
 OR Затраты.Дата_услуги LIKE [Введите_месяц_год])
 AND Затраты.Серийный_ВС=[Введите серийный номер ВС];
получаем ошибку "" не распознается ядром СУБД MA как допустимое имя поля или выражения.Я так понимаю при пересечении для перекрестного запроса выборка ничего не дает и из-за этого появляется данная ошибка. Какими методами можно это обойти? Примерный вид отчета также приложил.
Ответ: mobile, добрый вечер.Спасибо за поправку.Идея в том, что первые 6 столбцов отчета можно сформировать обычными вложенными селектами, а столбцы начиная с названия аэропортов можно вывести только перекрестным запросом, с переменным количеством столбцов.(в ячейках отчета на фото везде стоят значения столбца Затраты.Сумма) По отдельности все работает, вопрос как можно их объединить в один хотя бы запрос. Или посоветуете подойти к построению отчета иначе?
Вопрос: Объединение строк таблицы

Здравствуйте. Хотел узнать, есть ли возможность объединение нескольких определенных строк в таблице SQL Server. Допустим, есть таблица ЗАКАЗЫ(код_заказа, имя_заказчика) И если у нас один заказчик сделал несколько заказов (например 3). Можно ли как-то не выводить имя заказчика 3 раза. Пример запроса, пожалуйста.
Ответ: У меня есть функция, которая возвращает несколько столбцов из разных таблиц. Как видите на скрине, столбцы ФАМИЛИЯ ИМЯ ОТЧЕСТВО ДАТА_ЗАКАЗА ДАТА_ИСПОЛНЕНИЯ повторяются несколько раз, так как этот заказчик выбрал несколько услуг. То есть заказчик один, а услуг несколько. И в моей БД заказчик здесь может быть только один. И вот как нужно изменить функцию, чтобы эти данные не дублировались
Вопрос: Объединение строк

Добрый день!
Помогите пож-та разобраться куда копать или может быть то что я хочу невозможно :)
Суть в следующем, есть таблица(history) состоящая из n строк и 4 полей.

ID |start_date | end_date | login
12345 12.12.2013 25.06.2014 ivan
12345 25.06.2014 01.05.2015 olga
12345 01.05.2015 31.12.2999 andrey
...... ........... ........ ........
...... ........... ........ ........

Необходимо написать запрос результатом которого будет одна строка.
ID(выбираем по нему), start_date, end_date, login где end_date максимальная дата, но при этом в поле login должны отобразиться все логины через запятую за все даты.

То есть необходимо получить результат:
ID | start_date | end_date | login
12345 01.05.2015 31.12.2999 ivan;olga;andrey

Важно результат получить именно одной строкой

Сколько не пробовал не получается написать такой запрос....

Вот максимум что смог сделать, но выдает 3 строки соединяя поле login

SELECT ID, start_date, end_date,
LISTAGG (login,';') within group (order by ID) over (partition by ID)
FROM History
WHERE ID = '12345'
Ответ:
Elic
roadster
задатчик так просит же
Andrey9090
WHERE ID =
извините.
я как обычно невнимательно прочитал задачу.
ЗЫ за что и страдаю постоянными доработками, ибо ТЗ надо чтить.
Вопрос: Объединение строк из разных таблиц в форму

Создал Таблицы, запрос и форму. В форме мне надо, чтобы было слияние полей в одну строку, я написал, но он показывает цифры, а не данные.
Нужно, чтобы он писал в строке "Итог" "Данные клиента - дату его рождения - район - город - адрес", но не дублировал данные (в Оказаниях услуг всего 4 записи, а в форме он наклепал 14). Объясните, пожалуйста, где ошибка.
Ответ:
Сообщение от shanemac51
увы, человек учится только на своих ошибках, чужие он очень часто считает блажью
даже архивы он начинает делать регулярно только после собственных неприятностей
дай бог чтобы грабли разбросанные по этому не легкому полю не были ниже пояса
Вопрос: Объединение строк по коду с учетом непрерывности интервала

Здравствуйте, уважаемые гуру SQL!
Поделитесь, пожалуйста, мудростью с чайником.

Есть таблица, в каждой строке которой, записаны последовательные интервальные значения с кодами. Необходимо объединить строки по коду, с учетом непрерывности интервала и сохранить все в новой таблице.
Было бы здорово, если бы это все еще и обновлялось автоматически при обновлении исходной таблицы.

Пример таблицы:

/№/ От / До / Код /
1 / 1 / 2 / А /
2 / 2 / 3 / А /
3 / 3 / 3,5 / А /
4 / 3,5 / 4 / Б /
5 / 4 / 5 / Б /
6 / 5 / 6 / А /
7 / 6 / 7 / А /

На выходе должно получаться что то вроде:

/№/ От / До / Код /
1 / 1 / 3,5 / А /
2 / 3,5 / 5 / Б /
3 / 5 / 7 / А /

Заранее благодарю.
Также, был бы очень благодарен за пояснения.
Ответ: Добрый Э - Эх,

Спасибо большое.
Вопрос: Объединение строк в запросе.

Есть запрос на выдачу таблицы вида:

Название - Номер - Значение
Название1 - Номер1 - Значение
Название2 - Номер1 - Значение
Название3 - Номер2 - Значение
Название4 - Номер2 - Значение

Задача такая. Объединить в запросе строки с одинаковыми номерами, а их значения суммировать. Название же для объединенной строки выбрать случайное из подходящих (ну например первое). То есть результат должен быть таким:

Название - Номер - Значение
Название1 - Номер1 - СуммаЗначений
Название3 - Номер2 - СуммаЗначений

Коллеги, подскажите, возможно ли такое, и, если да, то как это реализовать. Заранее большое спасибо.
Ответ: polecat017,

Ключевые слова: SELECT, JOIN, SUM(), GROUP BY
Вопрос: Объединение строк

Есть сайт на вордпресе, в базе вордпреса хочу сделать дамп вида
ид,название,ссылка,категория
есть записи у которые дублируються т.е все поля такие же но категории разные(одному постусоотвествуют несколько категорий)
Не могу справиться стем чтобы соединять строки а категории вписывать в последнее поле через запятую, важное условие не изменяя саму базу.
Буду очень рад за помощь. Натолкните где копать, спасибо зарание!
Ответ: Извените это я не прав забыл добавить GROUP BY
Оромное спасибо за помошь!!!
Вопрос: Объединение строк по двум полям

Помогите плиз решить проблемку.
Имеется таблица:

ФамилияИОКабинет
СмирновС.В.6
СмирновС.В.4
СмирновТ.Н.4
СтепановК.А.3
Яковлев Н.М.3
Яковлев Н.М.5

Из неё мне надо получить следующее:

ФамилияИОКабинет
СмирновС.В.6
СмирновС.В.4
Яковлев Н.М.3
Яковлев Н.М.5

т.е. сгруппировать одинаковые строки по полям Фамилия и ИО
Ответ: Ага, помогло, спасибо!