Вопрос № 161976: Добрый день вопрос пока больше теоретический но ... Есть база данных MSSQL 2005 в которой есть таблица KONEKT. В эту таблицу приложение записывает всех на данный момент подключенных пользователей и периодически для каждого пользователя запи...
Вопрос № 161997: Здравствуйте! Прошу вашей помощи в решении на первый взгляд простой задачи: у меня есть например таблица из 5 столбцов, все данные типа char(2) (см. приложение).
Помогите мне составить запрос, что бы при указании первых трех значений...Вопрос № 162192: Здравствуйте, господа эксперты. У меня есть к вам вопрос, надеюсь вы мне поможете! У меня дома локальная сеть из 2-х компьютеров....На одном я установил MySQL, а с другого компа я немогу к базе подключиться. В чем может быть проблема? ...
Вопрос № 161.976
Добрый день
вопрос пока больше теоретический но ... Есть база данных MSSQL 2005 в которой есть таблица KONEKT. В эту таблицу приложение записывает всех на данный момент подключенных пользователей и периодически для каждого пользователя записывает его текущий статус. При запуске приложения, оно запрашивает количество подключенных пользователей запросом SELECT COUNT(*) FROM KONEKT Доступ к базе данных полный, к приложению нет
Есть ли возможность заставить базу отвечать на этот и только
этот запрос конкретной цифрой, например 1.
#thank 245008 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 3 Комментарий оценки: ключевая фраза была Доступ к базе данных полный, к приложению нет ваше предложение не сработает потому что имей я возможность изменить запрос в приложении, вопрос бы и не возник
Отвечает: Hubbitus
Здравствуйте, Jurijs Mahinovs!
Нет, COUNT это стандартная аггрегирующая функция, переопределить ее Вам не удастся.
Ответ отправил: Hubbitus (статус: 3-й класс)
Ответ отправлен: 04.03.2009, 12:51
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245014 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо, в сторону count копать не буду :)
Отвечает: Digitall
Здравствуйте, Jurijs Mahinovs! подобный финт можно провернуть если таблицу KONEKT удалить, и создать "вьюшку" KONEKT возвращающую только одну строку. И создать для нее ничего не делающие триггера на запись, обновление , удаление.
Ответ отправил: Digitall (статус: 1-й класс)
Ответ отправлен: 04.03.2009, 14:29
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245022 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо, этот вариант вполне может и сработать, надо будет проверить
Вопрос № 161.997
Здравствуйте!
Прошу вашей помощи в решении на первый взгляд простой задачи: у меня есть например таблица из 5 столбцов, все данные типа char(2) (см. приложение). Помогите мне составить запрос, что бы при указании первых трех значений, я получал элемент, который максимальное количество раз встречается во всех строчках таблицы при данных трех значениях. Например, из нижней таблицы, я задал первые три значения 1 2 2, в итоге должно получиться 4, т.к. оно максимальное количество раз встречается
при заданном наборе первых трех значений.
Заранее спасибо!
Приложение:
Отправлен: 04.03.2009, 12:52
Вопрос задал: Ole (статус: 3-й класс)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Hubbitus
Здравствуйте, Ole! >Помогите мне составить запрос, что бы при указании первых трех значений, я получал элемент, который максимальное количество раз встречается во всех строчках таблицы при данных трех значениях. На сколько я понял нужно посчитать количество строк, значения в первых 3х столбцах совпадают с данными, так?
SELECT COUNT(*) FROM tablename WHERE field1 = 1 AND field2 = 2 AND field3 = 3
Ответ отправил: Hubbitus (статус: 3-й класс)
Ответ отправлен: 04.03.2009, 13:42
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245018 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Челноков Виктор Альбертович
Здравствуйте, Ole! Попробуйте запрос
select top (1) t4 from ( SELECT t1, t2, t3, t4,count(t4)as t5 FROM Table_2 where t1='1' and t2='2' and t3='3' GROUP BY t1, t2, t3, t4) as tem order by t5 desc
Table_2 - название табл. t1, t2, t3, t4 - названия столбцов. sql 2005
#thank 245019 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: PVS@Lviv
Здравствуйте, Ole! Pre Scriptum: нужно, наверное, вводить правило "В вопросах по базам данных обязательно указывать СУБД" . От этого ответ может оказатся значительно проще.
Вот примерный синтаксис (должен работать в firebird, с небольшими изменениями в Sybase AS* и DB2 и, возможно, MSSQL):
WITH subq_a (f1, f2, f3 ,f4, f4c) AS ( SELECT f1,f2,f3,f4,count(all *) from tab group by f1,f2,f3,f4), subq_b (f1, f2, f3
,f4, f4c) AS ( SELECT f1,f2,f3,f4,count(all *) from tab group by f1,f2,f3,f4) SELECT a.f1,a.f2,a.f3,a.f4 FROM subq_a a, subq_b b where a.f1=b.f1 and a.f2=b.f2 and a.f3=b.f3 group by a.f1,a.f2,a.f3,a.f4 having a.f4c=max(b.f4c)
Ответ отправил: PVS@Lviv (статус: Профессионал) Украина, Львов ---- Ответ отправлен: 04.03.2009, 14:02
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245020 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Digitall
Здравствуйте, Ole! плохо что в вопросе не указана база данных. привожу пример для оракла:
Приложение:
Ответ отправил: Digitall (статус: 1-й класс)
Ответ отправлен: 04.03.2009, 14:47
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245024 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 162.192
Здравствуйте, господа эксперты. У меня есть к вам вопрос, надеюсь вы мне поможете! У меня дома локальная сеть из 2-х компьютеров....На одном я установил MySQL, а с другого компа я немогу к базе подключиться. В чем может быть проблема?
Отправлен: 06.03.2009, 13:29
Вопрос задал: Qepka15
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Hubbitus
Здравствуйте, Qepka15! По данному описанию могу сказать что проблема может быть в чем угодно! Проверьте следующее для начала:
1) С локального компьтера можете получить доступ? 2) MySQL сконфигурирован для доступа из сети? Посмотрите на какой IP-адресе и на каком порту. 3) Вы именно на этот IP и порт коннектитесь удаленно? Не мешает ли фаерволл ни на той, ни на другой машине?
Ответ отправил: Hubbitus (статус: 3-й класс)
Ответ отправлен: 06.03.2009, 14:58
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 245208 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.