Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2010, 13:23   #1
Dobriak-ru
 
Регистрация: 24.03.2010
Сообщений: 3
По умолчанию Запрос на сравнение элементов строк.

Добрый день.
Хотел посоветоваться по поводу решения следующей задачи.
Задана таблица. Сравнивать нужно ее строки по критерию: в двух столбцах должны быть одинаковые значения, в третьем (в котором могут быть только два значения activ-pasiv) - значения должны быть противоположны и в 4-ом отличаться не более чем на 10 %. В случае если такие поля найдены ставиться 1 в обоих полях, дальше 2 и т д.

Я делал следующим образом, создал два запроса, которые разделили таблицу на актив пасив. Далее нахожу строки соответствующие критерию с помощью запроса.
Цитата:
SELECT Activ.Neme, Activ.Time, Activ.Sum, pasiv.Sum
FROM Activ INNER JOIN pasiv ON (Activ.Sum > (pasiv.Sum*0.9)) AND (Activ.Sum < (pasiv.Sum*1.1)) AND (Activ.Time = pasiv.Time) AND (Activ.Neme = pasiv.Neme);
Далее нужно пронумеровать поля этого запроса. Поискал в сети и изменил его слудующим образом
Цитата:
SELECT DISTINCT Numeration(Activ.Neme), Activ.Neme, Activ.Time, Activ.Sum, pasiv.Sum
FROM Activ INNER JOIN pasiv ON (Activ.Sum > (pasiv.Sum*0.9)) AND (Activ.Sum < (pasiv.Sum*1.1)) AND (Activ.Time = pasiv.Time) AND (Activ.Neme = pasiv.Neme)
WHERE Numeration() = 0;
Но не знаю куда добавить определение функции Numeration.
Цитата:
Public Function Numeration(Optional var) As Long
Static n As Long
If IsMissing(var) Then
n = 0
Else
n = n + 1
End If
Numeration = n
End Function
Так же хотел бы узнать есть ли функции преобразующие текстовое поле в числовое. Дабы не иметь в будущем проблем с этой частью
Цитата:
(Activ.Sum > (pasiv.Sum*0.9)) AND (Activ.Sum < (pasiv.Sum*1.1))
Так как возможно поле Sum будет в текстовом формате.
Вложения
Тип файла: rar Prog.rar (17.4 Кб, 10 просмотров)
Dobriak-ru вне форума Ответить с цитированием
Старый 30.03.2010, 15:48   #2
Skolot
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 101
По умолчанию

Цитата:
Так же хотел бы узнать есть ли функции преобразующие текстовое поле в числовое.
По памяти:
Val([field name])
Skolot вне форума Ответить с цитированием
Старый 31.03.2010, 13:42   #3
Diamand
Форумчанин
 
Аватар для Diamand
 
Регистрация: 07.04.2007
Сообщений: 102
По умолчанию

Цитата:
Так же хотел бы узнать есть ли функции преобразующие текстовое поле в числовое. Дабы не иметь в будущем проблем с этой частью


можно вот так ещё запросом sql

alter table Таблица alter column Поле Integer
Diamand вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение строк Rivendell Microsoft Office Excel 8 18.12.2009 10:29
сравнение строк -? Evgenii Общие вопросы Delphi 10 15.07.2009 15:28
С++. Сравнение строк maxlav Помощь студентам 8 25.06.2009 04:33
Сравнение строк Elm0 Паскаль, Turbo Pascal, PascalABC.NET 2 02.06.2008 09:31
Сравнение строк HOMER Общие вопросы Delphi 7 04.01.2008 05:53