Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4201
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 1814
∙ повысить рейтинг »
vladisslav
Статус: Практикант
Рейтинг: 1353
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Базы данных / MySQL

Номер выпуска:480
Дата выхода:11.09.2012, 00:00
Администратор рассылки:Абаянцев Юрий Леонидович aka Ayl (Профессионал)
Подписчиков / экспертов:109 / 45
Вопросов / ответов:3 / 6

Консультация # 36655: Здравствуйте Уважаемые! Работаю с БД на MSSQL Server 2000. Неподскажете ли возможность в группировке выбрать значение столбца в последней строке. Поясню.Создаю запрос вида. SELECT lgota_id, Fio, SUM(rasxod) FROM People GROUP BY lgota_id,Fio В результате получается к примеру: 13 Первый 50 25 Первый 75 В в...


Консультация # 51414: Здравствуйте все еще раз!!! В дополнение к вопросу №51367: В БД Акцесс имеется поле Дата/Время в формате hh:mm Вопрос: Как мне просуммировать это поле SQL-запросом, чтобы результат остался в формате hh:mm, причем чтобы он был более 24 часов, или как считать в переменную каждое значение из этого поля, и конвертировать его согласно ф...
Консультация # 169610: Добрый день, уважаемые эксперты. Этот вопрос задавал в другую рассылку, но там пока тишина поэтому попробую сюда, тем более, что аналогичный вопрос сдесь уже был. Есть сайт на cms InstantCMS dthcbz 1.2.1 работает на SQL. Там есть косяк с форумом, на сайте разработчика есть решение проблеммы, нужно сделать SQL-запрос: INSERT ...

Консультация # 36655:

Здравствуйте Уважаемые!
Работаю с БД на MSSQL Server 2000.
Неподскажете ли возможность в группировке
выбрать значение столбца в последней строке.
Поясню.Создаю запрос вида.
SELECT lgota_id, Fio, SUM(rasxod)
FROM People
GROUP BY lgota_id,Fio
В результате получается к примеру:
13 Первый 50
25 Первый 75
В выборке конечно много строк с разными
Fio две я просто привел для примера.
Из группировки надо исключить lgota_id,
но это поле д.б. в выборке и этому полю д.б.
присвоено последнее значение в данном
случае 25 т.е. должно получиться
25 Первый 125
Я придумал пока только запрос такой
SELECT MAX(lgota_id), Fio, SUM(rasxod)
FROM People
GROUP BY Fio
Однако в данном случае это будет верно,
но может быть вариант когда lgota_id=20 и 12
и тогда будет выбрано значение 20 а надо бы 12.
Также неподходит и агрегатная функция MIN
часть выборок будет правильная а часть нет
как и с MAX.Надеюсь обьяснил понятно,какие
могут быть предложения по простой реализации
этого запроса SQL или это невозможно.
Спасибо.
Александр.

Дата отправки: 03.03.2006, 16:08
Вопрос задал: Трофименко А.В. (Посетитель)
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Nrr:

Здравствуйте, Трофименко А.В.

Чечтно говоря я не понял сути,
а так помогу,
мыло: ruf@inbox.ru

Консультировал: Nrr
Дата отправки: 03.03.2006, 16:55
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Архангельский Андрей Германови:

Здравствуйте, Трофименко А.В.!

1) Вообще то есть такое понятие как нормализация БД, свалить все в одну кучу, а потом пытаться сделать выборку не самый лучший способ. По эдной табличке задачу не видно.
2) В БД нет понятия первая/последня строка. Как определить какую льготу нужно выбирать - должен быть соответствующий признак для поля lgota_id, если ты сформируешь такой признак, то по нему можно применить MAX/MIN

Консультировал: Архангельский Андрей Германови
Дата отправки: 03.03.2006, 17:02
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует КиберТварь:

Здравствуйте, Трофименко А.В.!
можно использовать еще одно поле ID которая будет auto_increment
alter table people add column id int not null;
и потом сделать это поле TABLE Identity Column
и при выборке дать
SELECT MAX(id), Fio, SUM(rasxod)
FROM People
GROUP BY Fio

Консультировал: КиберТварь
Дата отправки: 03.03.2006, 17:42
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 51414:

Здравствуйте все еще раз!!!
В дополнение к вопросу №51367:

В БД Акцесс имеется поле Дата/Время в формате hh:mm
Вопрос: Как мне просуммировать это поле SQL-запросом, чтобы результат остался в формате hh:mm, причем чтобы он был более 24 часов, или как считать в переменную каждое значение из этого поля, и конвертировать его согласно формуле: t:=hh+(mm/60), t:real;

Дата отправки: 07.08.2006, 16:14
Вопрос задал: Герасименко Алексей Анатольеви
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Филатов Евгений Геннадьевич (Профессионал):

Здравствуйте, Герасименко Алексей Анатольевич/Geer!

В таблице Tab1 имеется поле Tim формата Дата/время - краткий формат времени ( 17:34 ).
Заполняем поле значениями и выполняем запрос:
select ( sum ( hour ( tim ) ) + int ( sum ( minute ( tim ) ) / 60 ) ) as chasov , ( sum ( minute ( tim ) ) - int ( sum ( minute ( tim ) ) / 60 ) * 60 ) as minut from tab1

В результате выведутся два поля, в которых будет общее количество часов ( в т.ч. и с учетом сумм минут / 60 ) и минут ( от 0 до 59 ) .

Формат hh:mm данный ответ не поддерживает ( выбросит ошибку ).

Можно изменить запрос:
select ( trim ( str ( sum ( hour ( tim ) ) + int ( sum ( minute ( tim ) ) / 60 ) ) ) ) + \':\' + trim ( str ( sum ( minute ( tim ) ) - int ( sum ( minute ( tim ) ) / 60 ) * 60 ) ) as vrem from tab1

Можно минуты выразить дробью, но мне кажется в виде 142:32 красивее и нагляднее.

Можно изменить запрос:
select ( trim ( str ( sum ( hour ( tim ) ) + int ( sum ( minute ( tim ) ) / 60 ) ) ) ) + \'час\' + trim ( str ( sum ( minute ( tim ) ) - int ( sum ( minute ( tim ) ) / 60 ) * 60 ) + \'мин\' ) as vrem from tab1

Тогда ответ будет в виде 142час32мин.

С уважением.

Консультировал: Филатов Евгений Геннадьевич (Профессионал)
Дата отправки: 07.08.2006, 16:57
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Александр Шевченко (Студент):

Здравствуйте, Герасименко Алексей Анатольевич/Geer!
1. select rtrim(convert(char, (sum(datepart(hour,dat))+ sum(datepart(minute, dat))/60))) + \':\' + rtrim(convert(char, (sum(datepart(minute, dat)) - (sum(datepart(minute, dat))/60) * 60))) as hours from dates
2. select datepart(hour,dat)+datepart(minute, dat)/60.0 as hours from dates

Консультировал: Александр Шевченко (Студент)
Дата отправки: 08.08.2006, 11:57
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 169610:

Добрый день, уважаемые эксперты.

Этот вопрос задавал в другую рассылку, но там пока тишина поэтому попробую сюда, тем более, что аналогичный вопрос сдесь уже был.

Есть сайт на cms InstantCMS dthcbz 1.2.1 работает на SQL. Там есть косяк с форумом, на сайте разработчика есть решение проблеммы, нужно сделать SQL-запрос:

INSERT INTO `cms_forums` (`id`, `category_id`, `title`, `description`, `auth_group`, `ordering`, `published`, `parent_id`, `NSLeft`, `NSRight`, `NSDiffer`, `NSIgnore`, `NSLevel`) VALUES
(1000, 0, ’-- Корень форумов --’, ’’, 0, 1, 0, 0, 1, 4, ’’, 0, 1);

Делаю через PHP MyAdmin, выходит ошибка:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2

Подскажите, если не сложно, в чем может быть проблемма?

Дата отправки: 19.06.2009, 13:13
Вопрос задал: Serega_artem (Студент)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Igor Yakimchuk (Профессионал):

Здравствуйте, Serega_artem!
После Values попробуйте заменить на (1000, 0, '-- Корень форумов --', '', 0, 1, 0, 0, 1, 4, '', 0, 1);

Консультировал: Igor Yakimchuk (Профессионал)
Дата отправки: 19.06.2009, 13:19

5
Спасибо, заработало! :)
-----
Дата оценки: 19.06.2009, 13:24

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное