Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Группировка даты в excel  [new]
arslanov_a
Member

Откуда:
Сообщений: 17
Доброго времени суток. Проконсультируйте пожалуйста. Подключаюсь через excel к sql server к определенному представлению, при

выгрузке все данные, я так понимаю выгружаются в текстовом виде, в том числе и дата, которую необходимо группировать

по году/месяцу/дню/часам через "+". Какое можно найти решение, для того чтобы была группировка для "Время разрешения" и

"Фактическое разрешение", если я использую ISNULL при выводе для пустых ячеек? CONVERT и СAST внутри ISNULL работают не

корректно, появляется дата "1900-01-01 00:00:00" вместо пустых значений. CONVERT и CAST писал без FORMAT. Код прилагаю.

SELECT
[Case].Number "Номер",
CaseStatus.Name "Состояние",
Symptoms "Описание",
ISNULL(FORMAT(SolutionDate, 'dd/MM/yyyy hh:mm'), '') "Время разрешения",
ISNULL(FORMAT(SolutionProvidedOn, 'dd/MM/yyyy hh:mm'), '') "Фактическое разрешение",
FROM
[Case] LEFT JOIN
CaseStatus ON CaseStatus.Id = [Case].StatusId LEFT JOIN
8 май 18, 08:44    [21394692]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1205
arslanov_a, а ISNULL точно нужен? как у вас null выгружается в excel?
8 май 18, 09:15    [21394752]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
arslanov_a
Member

Откуда:
Сообщений: 17
шК0ДЕР,

Да нужен, ISNULL необходим для вывода пустых значений, по коду выше вместо значений null выводится ''. Группировка должна

появится в фильтрах шапках таблиц в excel.
8 май 18, 10:02    [21394873]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1205
arslanov_a,
group by isnull(SolutionDate, ''), isnull(SolutionProvidedOn, '')
?
8 май 18, 10:28    [21394936]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1205
Если я правильно понимаю, при установке фильтрации в Excel будет происходить обращение к БД.
Зачем?
Верните набор данных 1 раз и фильтруйте их в самом Excel хоть 100500 раз. Это намного быстрее и не будет загружать БД
8 май 18, 10:32    [21394950]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
iiyama
Member

Откуда:
Сообщений: 642
arslanov_a,

Только мне показалось странным, что вы дату/время переводите в строку, чтобы потом Excel обрабатывал ее как дату/время? Вы на 100% уверены, что Ваша строка на компьютере с другими региональными настройками будет восприниматься как дата/время?

ПиЭс. Какая у Вас версия Excel? Вы используете Power Bi 4 Excel или просто выгружаете через загрузку из [Других источников], а потом обрабатываете?
8 май 18, 10:52    [21395015]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
arslanov_a
Member

Откуда:
Сообщений: 17
шК0ДЕР,
шК0ДЕР
arslanov_a,
group by isnull(SolutionDate, ''), isnull(SolutionProvidedOn, '')
?


это просто группировка данных. Я создаю представление из нескольких таблиц в sql server, группировку надо настроить именно там,

для дальнейшей выгрузки в excel.

Вот так будет работать группировка,

ISNULL(CONVERT(smalldatetime, SolutionProvidedOn), '') "Время разрешения" 


но вместо значений null будет '1900-01-01 00:00:00', а нужно ''
8 май 18, 11:19    [21395175]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
arslanov_a
Member

Откуда:
Сообщений: 17
iiyama
arslanov_a,

Только мне показалось странным, что вы дату/время переводите в строку, чтобы потом Excel обрабатывал ее как дату/время? Вы на 100% уверены, что Ваша строка на компьютере с другими региональными настройками будет восприниматься как дата/время?

ПиЭс. Какая у Вас версия Excel? Вы используете Power Bi 4 Excel или просто выгружаете через загрузку из [Других источников], а потом обрабатываете?


Если вы имеете ввиду FORMAT, то он необходим для работы со значением null. Стандартный excel 2016, из [Других источников], далее

подключаюсь к БД и выгружаю
8 май 18, 11:26    [21395227]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1205
arslanov_a
Вот так будет работать группировка,
ISNULL(CONVERT(smalldatetime, SolutionProvidedOn), '') "Время разрешения" 
но вместо значений null будет '1900-01-01 00:00:00', а нужно ''

Потому что тут имеет место неявное преобразование типов - из строки в дату, а потом из даты в строку
8 май 18, 11:56    [21395397]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1205
Вам оно действительно нужно?
Как осуществляется присваивание значений в ячейках Excel? Там есть метод с автоматическим подбором формата, а есть без него, напрямую как есть. Т.е если вам не делать преобразований isnull(convert(smalldatetime, ...), '') текст будет занесен в ячейку текстом и не будет видоизменен
8 май 18, 11:59    [21395416]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
iiyama
Member

Откуда:
Сообщений: 642
arslanov_a
но вместо значений null будет '1900-01-01 00:00:00', а нужно ''


У Вас 16й офис, а делаете как в 2003м. Используйте PowerQuery и не нужно никаких преобразований туда-сюда

К сообщению приложен файл. Размер - 63Kb
8 май 18, 12:51    [21395639]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
arslanov_a
CONVERT и СAST внутри ISNULL работают не

корректно, появляется дата "1900-01-01 00:00:00" вместо пустых значений
Корректно; проверить можно за 5 секунд.
declare @dt datetime
set @dt = null
select FORMAT(@dt, 'dd/MM/yyyy hh:mm'), ISNULL(FORMAT(@dt, 'dd/MM/yyyy hh:mm'), '')
Разбирайтесь с получением, форматом и отображением данных в Экселе.
8 май 18, 13:56    [21395870]     Ответить | Цитировать Сообщить модератору
 Re: Группировка даты в excel  [new]
arslanov_a
Member

Откуда:
Сообщений: 17
Всем спасибо за помощь, нашел 2 решения.
8 май 18, 15:50    [21396229]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить