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

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

  Все выпуски  

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


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

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

Чемпионы рейтинга экспертов в этой рассылке

Гуревич Александр Львович
Статус: Профессионал
Рейтинг: 4582
∙ повысить рейтинг »
lamed
Статус: Профессионал
Рейтинг: 2769
∙ повысить рейтинг »
_Ayl_
Статус: Профессионал
Рейтинг: 1901
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Базы данных MySQL

Номер выпуска:455
Дата выхода:22.06.2010, 21:00
Администратор рассылки:Victor Pyrlik, Модератор
Подписчиков / экспертов:346 / 145
Вопросов / ответов:3 / 11

Вопрос № 31920: Здраствуйте Уважаемые эксперты. У меня есть таблица постороенная с помощью компонета query, я заношу данные в эту таблицу через Edit. При компиляции программ ошибок нет, а когда заношу данные в таблицу у меня вылезает ошибка "error creating curs...


Вопрос № 124152: Уважаемые эксперты, приведённым в приложении запросом я считаю колличество записей с уникальным ip и free равным нулю. Мне нужно модифицировать данный запрос так, чтобы он возвращал так-же(т.е. сразу 2 значения) колличество уникальных ip с f...
Вопрос № 135356: Здравствуйте! Такая задача: есть таблица сотрудники, в ней 2 поля - имя_сотрудника, дата выхода на работу(dd.mm.yyyy). Вопрос: как написать запрос, чтобы можно было вывести только 3-х первых по дате сотрудников? Спасибо!...

Вопрос № 31920:

Здраствуйте Уважаемые эксперты. У меня есть таблица постороенная с помощью компонета query, я заношу данные в эту таблицу через Edit. При компиляции программ ошибок нет, а когда заношу данные в таблицу у меня вылезает ошибка "error creating cursor handle"
Скажите в чем может быть причина.

Отправлен: 21.12.2005, 07:15
Вопрос задал: Шишлянникова Анисия Николаевна
Всего ответов: 3
Страница вопроса »


Отвечает Архангельский Андрей Германович, Специалист :
Здравствуйте, Шишлянникова Анисия Николаевна!

1) А последние две строчки в Query добавлять не нужно?
2) Для отладки такого рода программ необходимо - а) Ясно писать запрос, б) выводить в отладочный файл полученный запрос перед Query8.ExecSQL;
При компиляции не проверяется правильность запроса - это невозможно.
-----
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО

Ответ отправил: Архангельский Андрей Германович, Специалист
Ответ отправлен: 21.12.2005, 09:16

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 76795 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Whisper :
    Здравствуйте, Шишлянникова Анисия Николаевна!
    большой вопрос вызывает вот это Query8.Open; на месте ли оно... Видиомо именно это и вызывает ошибку создания курсора.

    Ответ отправил: Whisper
    Ответ отправлен: 21.12.2005, 09:41

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 76799 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Игорь Елизаров, Студент :
    Здравствуйте, Шишлянникова Анисия Николаевна!
    Еще одно дополнение..
    А какие у Вас типы полей в таблице ?
    Ведь добавляете Вы исключительно тексты, даже univ_id это текст.
    И с пробелами надо быть поаккуратнее.
    Строка, содержащая один пробел - это не пустая строка и в то же время при всяких преобразованиях получается плохо
    ну и третий момент - а не пытаетесь ли Вы добавлять ключевые поля ?
    может такой ключ уже есть ?

    -----
    Пользователь - тоже человек..

    Ответ отправил: Игорь Елизаров, Студент
    Ответ отправлен: 22.12.2005, 18:18

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 77018 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 124152:

    Уважаемые эксперты, приведённым в приложении запросом я считаю колличество записей с уникальным ip и free равным нулю.

    Мне нужно модифицировать данный запрос так, чтобы он возвращал так-же(т.е. сразу 2 значения) колличество уникальных ip с free равным единице.
    Спасибо.

    Отправлен: 21.02.2008, 05:29
    Вопрос задал: Миленин Александр, Студент
    Всего ответов: 6
    Страница вопроса »


    Отвечает progerNSK, Студент :
    Здравствуйте, Миленин Александр!

    select count(distinct(ip)) from lan where free=0 or (free=1) group by free

    select count(distinct(ip)),free from lan where free=0 or (free=1) group by free
    (кол-во и тип 0 или 1)
    -----
    Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете

    Ответ отправил: progerNSK, Студент
    Ответ отправлен: 21.02.2008, 05:52

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 211434 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Esi :
    Здравствуйте, Миленин Александр!
    Для этого нужно:
    SELECT 0 as prizn_free, COUNT(DISTINCT `ip`) AS `num` FROM `lan` WHERE `free`=\'0\'
    union all
    SELECT 1 as prizn_free, COUNT(DISTINCT `ip`) AS `num` FROM `lan` WHERE `free`=\'1\'
    order by prizn_free
    Это один из вариантов.

    Удачи!

    Ответ отправил: Esi
    Ответ отправлен: 21.02.2008, 06:39

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 211440 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Силантьев А.В. :
    Здравствуйте, Миленин Александр!
    Присоединяюсь к ответу Raptor,
    но только ко второй его части.
    Первая часть ответа не подходит.
    Итак:
    select free as `type`, count(distinct(ip)) AS `num`
    from lan where free=0 or free=1
    group by free

    Ответ отправил: Силантьев А.В.
    Ответ отправлен: 21.02.2008, 08:52

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 211456 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Sergey T, 2-й класс :
    Здравствуйте, Миленин Александр!

    Вообще нет особой разницы, что именно использовать - UNION или GROUP BY.
    Только например с GROUP BY можно вернуть количество уникальных IP по всем free, которые имеются в таблице. Но если бы мне нужно было толко по двум значениям - я бы наверно воспользовался объединением.

    Вот еще несколько вариантов:

    - возвращаем количество уникальных IP по всем имеющимся значениям FREE (с сортировкой по FREE)

    SELECT \'free\', COUNT(DISTINCT(\'ip\')) AS \'num\'
    FROM \'lan\'
    GROUP BY \'free\'
    ORDER BY \'free\'

    - то же самое, только уже с условием по нужным FREE

    SELECT \'free\', COUNT(DISTINCT(\'ip\')) AS \'num\'
    FROM \'lan\'
    WHERE \'free\' IN (0, 1) -- тут перечисляем через запятую все нужные нам FREE
    GROUP BY \'free\'
    ORDER BY \'free\'

    - с использованием объединения все аналогично ответу ESI, правда можно без ALL, так как значения FREE мы уже ставим уникальные. Но это уже как кому приятнее.

    Удачи.

    Ответ отправил: Sergey T, 2-й класс
    Ответ отправлен: 21.02.2008, 09:39

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 211463 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Zinaida :
    Здравствуйте, Миленин Александр!Такой запрос можно модифицировать так:
    SELECT COUNT(DISTINCT `ip`) AS `num` FROM `lan` WHERE `free`=\'0\'
    UNION
    SELECT COUNT(DISTINCT `ip`) AS `num` FROM `lan` WHERE `free`=\'1\'
    Можно так:
    select distinct \'ip\', count(*) from \'lan\'
    where `free`=\'0\' or `free`=\'1\'
    group by \'ip\'

    Ответ отправил: Zinaida
    Ответ отправлен: 21.02.2008, 10:31

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 211477 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Синельников Сергей, 4-й класс :
    Здравствуйте, Миленин Александр!

    Смею предположить, что из одной записи более удобно получать результаты. А по сему вот:

    SELECT COUNT(DISTINCT `ip`*`free`)-1 AS `numfree1`, COUNT(DISTINCT `ip`*(`free`-1))-1 AS `numfree0`FROM `lan` WHERE `free`=0 OR `free`=1

    В первом столбце будет для free=1, во втором для free=0

    Ответ отправил: Синельников Сергей, 4-й класс
    Ответ отправлен: 25.02.2008, 21:25

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 212153 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 135356:

    Здравствуйте!
    Такая задача: есть таблица сотрудники, в ней 2 поля - имя_сотрудника, дата выхода на работу(dd.mm.yyyy).
    Вопрос: как написать запрос, чтобы можно было вывести только 3-х первых по дате сотрудников?
    Спасибо!

    Отправлен: 04.05.2008, 22:48
    Вопрос задал: Usarios
    Всего ответов: 2
    Страница вопроса »


    Отвечает Игорь Елизаров, Студент :
    Здравствуйте, Usarios!

    Этот запрос отбирает троих с самыми старыми датами

    select top 3 name from table order by date_job

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

    select top 3 name from table order by date_job desc
    C уважением, Игорь

    -----
    Пользователь - тоже человек..

    Ответ отправил: Игорь Елизаров, Студент
    Ответ отправлен: 04.05.2008, 23:21

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 222144 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Nomad_fromx_2007, 2-й класс :
    Здравствуйте, Usarios!
    Смотрите примерный запрос, который выбирает 3 самых близких по дате выхода сотрудников.

    Приложение:

    Ответ отправил: Nomad_fromx_2007, 2-й класс
    Ответ отправлен: 08.05.2008, 01:34

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 222623 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    подать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.16 от 26.05.2010

    В избранное