powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select
6 сообщений из 6, страница 1 из 1
Select
    #34129058
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть 2 таблицы с одинаковыми полями-нужно в первой таблице найти все значения , для которых значения 4 цен не совпадает(т.е. mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3 and mlabel.ocena4#mlcen.ocena4) или 3 цен-mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3
или 2-mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2
или всего одна цена не совпадает-mlabel.ocena1#mlcen.ocena1

это все надо написать в одном запросе
...
Рейтинг: 0 / 0
Select
    #34129060
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и всевозможные комбинации -1 и 2
1 и 3
и т.д.
...
Рейтинг: 0 / 0
Select
    #34129103
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
select distinct <все поля таблицы1> 
      from mlabel, mlcen
      where (mlabel.ocena1#mlcen.ocena1) 
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2)
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3)
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3 and mlabel.ocena4#mlcen.ocena4)
...
Рейтинг: 0 / 0
Select
    #34129178
Dima Tпримерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
select distinct <все поля таблицы1> 
      from mlabel, mlcen
      where (mlabel.ocena1#mlcen.ocena1) 
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2)
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3)
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3 and mlabel.ocena4#mlcen.ocena4)

самое смешное, что при выполнении/невыполнении условия (mlabel.ocena1#mlcen.ocena1) проверка остальных условий не имеет смысла! Т.е. запрос значительно упрощается:
Код: plaintext
1.
2.
3.
select distinct <все поля таблицы1> 
      from mlabel, mlcen
      where (mlabel.ocena1#mlcen.ocena1) 
...
Рейтинг: 0 / 0
Select
    #34129491
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С Dima Tпримерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
select distinct <все поля таблицы1> 
      from mlabel, mlcen
      where (mlabel.ocena1#mlcen.ocena1) 
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2)
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3)
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3 and mlabel.ocena4#mlcen.ocena4)

самое смешное, что при выполнении/невыполнении условия (mlabel.ocena1#mlcen.ocena1) проверка остальных условий не имеет смысла! Т.е. запрос значительно упрощается:
Код: plaintext
1.
2.
3.
select distinct <все поля таблицы1> 
      from mlabel, mlcen
      where (mlabel.ocena1#mlcen.ocena1) 


а как же всевозможные комбинации???????7
mlabel.ocena1#mlcen.ocena1 and mlabel.ocena4#mlcen.ocena4
всего комбицаций получается 4!=16
...
Рейтинг: 0 / 0
Select
    #34129612
нач Станислав С Dima Tпримерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
select distinct <все поля таблицы1> 
      from mlabel, mlcen
      where (mlabel.ocena1#mlcen.ocena1) 
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2)
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3)
              or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3 and mlabel.ocena4#mlcen.ocena4)

самое смешное, что при выполнении/невыполнении условия (mlabel.ocena1#mlcen.ocena1) проверка остальных условий не имеет смысла! Т.е. запрос значительно упрощается:
Код: plaintext
1.
2.
3.
select distinct <все поля таблицы1> 
      from mlabel, mlcen
      where (mlabel.ocena1#mlcen.ocena1) 


а как же всевозможные комбинации???????7
mlabel.ocena1#mlcen.ocena1 and mlabel.ocena4#mlcen.ocena4
всего комбицаций получается 4!=16
А Вы посмотрите на условия:
1. Если выполняется mlabel.ocena1#mlcen.ocena1 , то проверка остальных условий не обязательна, так как данные все-равно попадут в выборку - происходит выполнение одного из условий по ИЛИ:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
* * при mlabel.ocena1#mlcen.ocena1 выполняется условие запроса:
(mlabel.ocena1#mlcen.ocena1) 

* и проверка оставшихся условий становится излишней
or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2)
or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3)
or (mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3 and mlabel.ocena4#mlcen.ocena4)

2. Если не выполняется mlabel.ocena1#mlcen.ocena1 , то проверка остальных условий не обязательна, так как данные все-равно не попадут в выборку - невыполнение одного из условий по И:
Код: plaintext
1.
2.
3.
4.
* при mlabel.ocena1=mlcen.ocena1 ни одно из нижеперечисленных условий не выполняется:
mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2
mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3
mlabel.ocena1#mlcen.ocena1 and mlabel.ocena2#mlcen.ocena2 and mlabel.ocena3#mlcen.ocena3 and mlabel.ocena4#mlcen.ocena4
А вообще формулы (законы) логики - великая вещь!!! Учите логику!!!
Здесь используется простой закон: A&(A^B)=A (где & = И, ^ = ИЛИ)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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