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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2010, 19:47   #1
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию Не правильно выбирает данные

Ребята, помогите:

Написал такой код:
PHP код:
SELECT DISTINCT SMS.[Дата от], SMS.[Номер договора], SMS.[Мобильный тел#№], SMS.[Вал#_(код)], SMS.[Погашение по графику (вал#)]
FROM SMSZmina_Daty
WHERE 
(((SMS.[Номер договора]) <>([Zmina_Daty].[№ договора])) AND ((SMS.Продукт)<>"Кредитна лінія під заставу нерухомості" And (SMS.Продукт)<>"Кред.л.під заст.нер.- 24,9 UAH" And (SMS.Продукт)<>"Кред.лін.під заст нерух.UAH" And (SMS.Продукт)<>"Кредитна лінія під заставу нерухомості - 24,9") AND ((Day([SMS].[Дата от]))=DenPlus1()) AND ((SMS.[Дата последнего погашения])>20) AND ((SMS.[Кол-во дней просрочки])<30)); 
И все рабно выбирает не правильно, тоесть
PHP код:
((SMS.[Номер договора]) <>([Zmina_Daty].[№ договора])) 
всеравно попадают данные которые есть в таблице [Zmina_Daty]

Что я тут не правильно написал?
sasha_prof вне форума Ответить с цитированием
Старый 18.11.2010, 20:09   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
((SMS.[Номер договора]) <>([Zmina_Daty].[№ договора]))
такую связь в запросе задавать НЕЛЬЗЯ.
почему не понятно? сделайте две таблички, забейте в одну Номер 1,2,3,4 и во вторую, например, номер: 2, 4
сделайте выборку
select * from Таблица1, Таблица2 where Таблица1.Номер<>Таблица2.Номер
я Вам гарантирую. Что Вы даже предположить не можете, сколько при этом будет записей (строчек) в результирующей выборке...


А дальше условия отбора я даже не смотрел!..

а что, собственное, Вы хотели вот этим ([Номер договора]) <>[№ договора] сказать?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.11.2010, 20:46   #3
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Может я не понял?

Писать надо так-

PHP код:
SELECT DISTINCT SMS.[Дата от], SMS.[Номер договора], SMS.[Мобильный тел#№], SMS.[Вал#_(код)], SMS.[Погашение по графику (вал#)] 
FROM SMSZmina_Daty 
[U]select from Таблица1Таблица2 where Таблица1.Номер<>Таблица2.Номер[/U] AND ((SMS.Продукт)<>"Кредитна лінія під заставу нерухомості" And (SMS.Продукт)<>"Кред.л.під заст.нер.- 24,9 UAH" And (SMS.Продукт)<>"Кред.лін.під заст нерух.UAH" And (SMS.Продукт)<>"Кредитна лінія під заставу нерухомості - 24,9") AND ((Day([SMS].[Дата от]))=DenPlus1()) AND ((SMS.[Дата последнего погашения])>20) AND ((SMS.[Кол-во дней просрочки])<30)); 
То что выделено подчеркнуто я правельно вставил?
sasha_prof вне форума Ответить с цитированием
Старый 18.11.2010, 21:36   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

нет. Категорически неправильно!

Вы не поняли, что я писал и о чём.
я даже больше скажу. я уверен на 99%, что запрос Вы не сами писали...

Таблица1 и Таблица2 - это таблицы, которые вы могли бы создать и заполнить так, как я сказал, чтобы убедиться, что по условию НЕ РАВНО нельзя связывать таблицы!! Это был просто пример, что так связывать нельзя!

Выкиньте из своей таблицы всякое упоминание о таблице Zmina_Daty
тем более, что Вы так и не ответили, для чего Вам связь SMS.НОмер_Договора не равно Zmina_Daty.Номер_договора ?! А раз Вы не знаете, для чего это неверное условие, то выбросите его.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.11.2010, 22:02   #5
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы так и не ответили, для чего Вам связь SMS.НОмер_Договора не равно Zmina_Daty.Номер_договора ?! А раз Вы не знаете, для чего это неверное условие, то выбросите его.
1. Связь эта нужна для того чтобы номера договоров которые есть в Zmina_Daty не выбрались из таблицы НОмер_Договора, вот и все, а дальше все по условиям.

2. Делал я это сам, только сначала в "режеме конструктор" а потом открыл режим SQL
sasha_prof вне форума Ответить с цитированием
Старый 18.11.2010, 22:20   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте sasha_prof.
возможно для решения Вашей задачи подойдет подобная конструкция:
Код:
SELECT DISTINCT  [Дата от], [Номер договора], [Мобильный тел#№], [Вал#_(код)], [Погашение по графику (вал#)]
FROM SMS
WHERE [Номер договора] NOT IN  (SELECT [№ договора] FROM [Zmina_Daty])
Евгений.

P.S. почему возможно : Ваш ответ "..Делал я это сам..", "..чтобы номера договоров которые есть в Zmina_Daty не выбрались из таблицы НОмер_Договора..", и в меня вселил сомнения которые озвучил Serge_Bliznykov. В Ваших образцах конструкций, упоминания о таблице НОмер_Договора нет.

Последний раз редактировалось Teslenko_EA; 18.11.2010 в 22:22.
Teslenko_EA вне форума Ответить с цитированием
Старый 18.11.2010, 22:23   #7
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Здравствуйте sasha_prof.
возможно для решения Вашей задачи подойдет подобная конструкция:
Код:
SELECT DISTINCT  [Дата от], [Номер договора], [Мобильный тел#№], [Вал#_(код)], [Погашение по графику (вал#)]
FROM SMS
WHERE [Номер договора] NOT IN  (SELECT [№ договора] FROM [Zmina_Daty])
Евгений.

P.S. почему возможно : Ваш ответ "..Делал я это сам..", "..чтобы номера договоров которые есть в Zmina_Daty не выбрались из таблицы НОмер_Договора..", и в меня вселил сомнения которые озвучил Serge_Bliznykov. В Ваших образцах конструкций, упоминания о таблице НОмер_Договора нет.


Так сказать первые шаги в Аксесе.
sasha_prof вне форума Ответить с цитированием
Старый 18.11.2010, 22:25   #8
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Уважаемые а если 2 условия? Как указывать?
sasha_prof вне форума Ответить с цитированием
Старый 18.11.2010, 22:25   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Связь эта нужна для того чтобы номера договоров которые есть в Zmina_Daty не выбрались из таблицы НОмер_Договора
ну так сразу бы и сказали!!

понятно.
пробуйте:
Код:
SELECT DISTINCT SMS.[Дата от], SMS.[Номер договора], 
  SMS.[Мобильный тел#№], SMS.[Вал#_(код)], 
  SMS.[Погашение по графику (вал#)] 
FROM SMS
WHERE (SMS.Продукт)<>"Кредитна лінія під заставу нерухомості" 
    And (SMS.Продукт)<>"Кред.л.під заст.нер.- 24,9 UAH" 
    And (SMS.Продукт)<>"Кред.лін.під заст нерух.UAH" 
   And (SMS.Продукт)<>"Кредитна лінія під заставу нерухомості - 24,9"
   AND ((Day([SMS].[Дата от]))=DenPlus1()) 
   AND ((SMS.[Дата последнего погашения])>20) 
   AND ((SMS.[Кол-во дней просрочки])<30)
   AND SMS.[Номер договора]) not in (select [№ договора] from Zmina_Daty )
добавлено
сории за повтор...
пока писал свой пример, уже уважаемый Евгений дал ответ с NOT IN ...

Последний раз редактировалось Serge_Bliznykov; 18.11.2010 в 22:28.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.11.2010, 23:52   #10
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

А можно еще вопросик?

такое условие

Данные в таблице1 которые совпадают с таблицей2 нужно исключить (Это я понял как)
но если в таблице2 по полю2 стоит "1" то эту запись нужно взять

Реально это?
sasha_prof вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно изменять данные в теблице БД!? AK BULLETS БД в Delphi 5 23.03.2010 11:18
Как правильно сохранить данные в таблицу??? kAtenok87 PHP 4 07.05.2009 11:24
Как правильно скопировать данные с одного текстового файла в другой? Dem80 Общие вопросы C/C++ 2 06.03.2009 22:17
function NetUserGetInfo, не правильно отображает данные MStorm Помощь студентам 1 15.01.2008 20:43