powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возможен ли такой запрос?
13 сообщений из 13, страница 1 из 1
Возможен ли такой запрос?
    #32372598
SyVlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Всем!!!
С прошедшими праздниками.
Есть табличка, нужно из нее создать отчет, в котором будет количество всех записей, количество записей удовлетворяющих условию Поле1 > 2 и количество записей с Поле1 <3. Вот такой извращенческий запрос. Как ни крутил, ничего не получается, единственный вариант - создать три запроса, потом из повязать в четвертом. Но может есть более красивое решение?

И второй вопрос меня мучает, можно ли повязать таблички постредством выражения, т.е. не Table1.PrimKey = Table2.PrimKey, а например Table1.Primkey = Table2.Instr(SearchStr,PrimKey)=1?

Заранее благодарен.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32372683
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. =count(*) =Sum(IiF([Поле1]>2;1;0) =Sum(IiF([Поле1]<3;1;0)
2. JOINить по выражению можно.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32373616
SyVlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, оригинальный подход, интересно как будет по скорости. Ведь iif медленная операция.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32373854
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В некоторых случаях, Dcount(), Dsum() в несколько раз быстрее и полезнее IIFа , это если нет желания(необходимости) пользоваться JOIN.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32377887
SyVlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли повязать таблицы следующим образом :

INNER JOIN Location ON Instr([Поле1],[Поле2])=1

Задача повязать таблицы, в Таблице1.Поле1 хранятся набираемые номера телефонов, а в Таблице2.Поле1 хранятся коды городов, как известно, длина кодов разная, поэтому все и усложняется. Задача такая : надо определить куда народ звонит и соответственно тариффицировать.

Вот такая запись, что я привел, вызывает массу ошибок. Может можно как то выкрутится? Мне кажется можно, в Fox-е такую связь реализовать - делать нечего, а вот как это сделать в Аксесе ...?

Заранее благодарен.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32377915
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если в одном поле телефоны а в другом коды
наверно где-то так
Код: plaintext
1.
SELECT tbl1.Поле1
FROM tbl1 INNER JOIN tbl2 ON left(tbl1.[Поле1],len(tbl2.[Поле2])) = tbl2.Поле2;
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32384559
SyVlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр, увы, не работает такой запрос, самое интересное, что ругается он на выражение в JOIN, говорит ошибка синтаксиса и указывает на выражение JOIN.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32384589
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно попробовать:

ON tbl1.Поле1 like tbl2.Поле2 & "*"
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32384635
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я стараюсь проверять, что пишу.
Запрос рабочий. A2000. Сейчас снова (уже дома) воспроизвел таблицы, запрос - все работает.
Могу только посоветовать попробовать заменить запятую в функции на ;
Единственное что, забыл при первом ответе, что в номере телефона будет первым будет 8, но это легко решаемо.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32386833
SyVlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извини, Александр, не хотел тебя обидеть, возможно я что-то не так делаю. у меня есть такая строка
CurrentDb.QueryDefs("test").sql = "SELECT Main.CLI, Telcode.Name FROM Main INNER JOIN Telcode ON Left (Main.CLI ; len(Telcode.Code)) = Telcode.Code;"
Все это я помещаю в программу обработки нажатия кнопки на форме и по выполнению этой команды у меня вываливается синтаксическая ошибка, причем Аксесу по барабану "," или ";" используется для разделения операндов в Left. У меня access 2002. Может эта команда не работает с Jet запросами?
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32387276
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воспроизвел твой запрос полностью с твоими названиями.
Только с запятой.
Код: plaintext
1.
2.
CurrentDb.QueryDefs( "test" ).SQL = _
 "SELECT Main.CLI, Telcode.Name FROM Main INNER JOIN Telcode ON Left (Main.CLI , len(Telcode.Code)) = Telcode.Code;" 
DoCmd.OpenQuery  "test" 
Конвертнул в А2002. Работает.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32387868
SyVlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда. Чудеса. Видимо у меня аксес неправильный. Может редакция не та, ну не профессионал, например, или библиотечки какой не хватает. Ведь чудес в программировании не бывает.
...
Рейтинг: 0 / 0
Возможен ли такой запрос?
    #32387943
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так процитируй текст появляющегося сообщения об ошибке!
А другие функции с разделителями (Iif, Switch и т.д.) работают?
Библиотека VBA подключена? Запрос, у которого меняешь свойство SQL, в базе имеется?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возможен ли такой запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]