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

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

  Все выпуски  

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


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

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

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 356
∙ повысить рейтинг »
Александр Романов [Alexo]
Статус: Студент
Рейтинг: 0
∙ повысить рейтинг »
Екатерина
Статус: 1-й класс
Рейтинг: 0
∙ повысить рейтинг »

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

Номер выпуска:509
Дата выхода:15.04.2016, 15:21
Администратор рассылки:F®ost (Администратор)
Подписчиков / экспертов:11 / 5
Вопросов / ответов:3 / 6

Консультация # 44177: Добрый день всем! Подскажите реализацию вопроса: VB6, БД на Access98. имеются две таблицы Tabl1 и Tabl2 с одинаковой структурой (индентичны). В таблицах есть поле "InvNumber", где обьявлено в конструкторе:"Совпадение не допускается". Как при занесении данных в Tabl1 проконтролировать в Tabl2, чтобы не было индентичной за...
Консультация # 41849: Здравствуйте Уважаемые эксперты! у меня вопрос который может показатся Вам очень легким, но я не где не могу найти ответа на него! И так вопрос: Как найти среднее значение (AVG) с точностью до десятых, сотых. ...
Консультация # 97512: КАК ТО СТРАННО ПРОИСХОДИТ поиск в программе. Стоит сервер SQL на главной машине, базы – MySQL. Происходит поиск по полю “сумма” (документы отсортированы по полю “сумма”, в базе есть по несколько документов с одинаковыми суммами), система находит документы и курсор встает не на первый в списке документ, а на второй (причем как уже было замечено эти ...

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

Добрый день всем!
Подскажите реализацию вопроса:
VB6, БД на Access98. имеются две таблицы Tabl1 и Tabl2 с одинаковой структурой (индентичны). В таблицах есть поле "InvNumber", где обьявлено в конструкторе:"Совпадение не допускается". Как при занесении данных в Tabl1 проконтролировать в Tabl2, чтобы не было индентичной записи по данному полю, что-2:
то наподобие:

код Visual Basic

Private Sub Data1_Validate(Action As Integer, Save As Integer)
Set dbBibliot = OpenDatabase(gDataBaseName) \\'здесь хранится путь к БД
Data2.RecordSource = "SELECT InvNumber FROM StudTitDolg=" & DBGrid1.Columns("InvNumber").Text \\'Поиск в Tabl2 такой же записи
If Tabl2.InvNumber=Tabl1.InvNumber THEN
Action = 0
Save = False
MsgBox ("Повторяющийся Инв.Номер.")
Exit Sub
dbBibliot.Close
End If
End Sub

Если не понятно, объясню.
С уважением

Дата отправки: 25.05.2006, 08:57
Вопрос задал: Робатько Анатолий Васильевич
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Игорь Елизаров:

Здравствуйте, Робатько Анатолий Васильевич!
А кто занимается занесением данных в эти таблицы ?
Может разграничить индексы в момент занесения ?
вариант - в таблицу 1 заносим четные индексы с шагом 2
а в таблицу 2 - нечетные, тоже с шагом 2
тогда индексы будут уникальны сразу в момент создания
но для учета и инвентаризаций этот вариант может не подойти, там номера должны быть сквозными

Другой вариант, если индексное поле не числовое, то к обычному индексу добавляем префикс в зависимости от таблицы, например _tab1 _tab2
(или номер отдела или еще что..)
таким образом мы получим уникальный индекс в пределах нескольких таблиц

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

Консультировал: Игорь Елизаров
Дата отправки: 25.05.2006, 18:29
Рейтинг ответа:

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

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

Здравствуйте Уважаемые эксперты!
у меня вопрос который может показатся Вам очень легким, но я не где не могу найти ответа на него!
И так вопрос: Как найти среднее значение (AVG) с точностью до десятых, сотых.

Дата отправки: 02.05.2006, 10:03
Вопрос задал: Бутенко А
Всего ответов: 3
Страница онлайн-консультации »


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

Здравствуйте, Бутенко А!

Функция AVG не знает какая точность используется. Она использует точность тех данных с которыми работает. Но ты можешь привести результат к нужному формату используя функцию форматирования в Delphi или C++
ЕСли используешь Interbase/Firebird, то можно написать свою функцию (UDF) для форматирования результатов

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

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


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

Здравствуйте, Бутенко А!
ИМХО, это настраивается (отбражение чисел) в СУБД.
То есть на самом деле расчет идет с точностью, скажем, до 15 знаков, а вам видны не все знаки. Как в Экселе например. Так как не указали какая СУБД, то попробуйте сами поковыряться в насройках или уточните вопрос (укажите используемую СУБД). Или попробуйте использовать каку-нить встроеную функцию, типа format().

Консультировал: Kazakh
Дата отправки: 02.05.2006, 10:22
Рейтинг ответа:

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


Консультирует Игорь Елизаров:

Здравствуйте, Бутенко А!
допустим, есть база из трех полей
id - уникальный идентификатор
cost - какая-то сумма
gruppa - группа товаров

тогда вычислить среднее значение по каждой группе можно следующим запросом
select sum(cost)/count(id) as avg_for_gruppa, gruppa from test
group by gruppa
С уважением, Игорь

Консультировал: Игорь Елизаров
Дата отправки: 02.05.2006, 17:10
Рейтинг ответа:

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

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

КАК ТО СТРАННО ПРОИСХОДИТ поиск в программе. Стоит сервер SQL на главной машине, базы – MySQL. Происходит поиск по полю “сумма” (документы отсортированы по полю “сумма”, в базе есть по несколько документов с одинаковыми суммами), система находит документы и курсор встает не на первый в списке документ, а на второй (причем как уже было замечено эти документы с одинаковыми суммами, т.е. все документы удовлетворяют поиску). По некоторым суммам вообще не идет поиск, например, документ с суммой 621.30 в списке есть, а система его не находит, говорит, нет документа с таким значение в поле сумма. Программа называется “Связь-банк”, может кто-нибудь встречался на практике с такой проблемой.

Дата отправки: 06.08.2007, 15:15
Вопрос задал: Kimop
Всего ответов: 2
Страница онлайн-консультации »


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

Здравствуйте, Kimop!

Вероятно, Вы столкнулись с фокусами округления чисел: в базе, к примеру, хранится значение вроде 621.299999995 или 621.30000005 и при отображении округляется до 2 знаков после запятой. Если у Вас есть возможность, попробуйте искать по интервалу от 621.29 до 621.31. Если “Связь-банк” такого не позволяет, то остаётся лишь обратиться к разработчику...

Консультировал: Delph
Дата отправки: 06.08.2007, 15:43
Рейтинг ответа:

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


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

Здравствуйте, Kimop!
Сталкивался с подобной ситуацией, когда поле для хранения числа было не числовым, а символьным. При этом, уже имеет значение, какой символ разделитель Вы используете - либо ".", либо ",". Попробуйте произвести поиск с другим символом-разделителем (возможно, еще "-").

Консультировал: Nomadfromx2007
Дата отправки: 07.08.2007, 01:49
Рейтинг ответа:

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


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

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

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


В избранное