powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом!!!
13 сообщений из 13, страница 1 из 1
Помогите с запросом!!!
    #37583379
СТАРЧЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
Select a.*, b.kol as kolnew From ost_nach1 a WHERE ;
	!Exists (Select * From ost_nach2 b Where  a.Sort= b.Sort And a.cena= b.cena And a.zw= b.zw And a.kol= b.kol);
	Into Cursor ost_nach3 Readwrite


- пишет переменная b.kol не найдена.
Мне нужно все поля из 1 табл. + поле kol из 2 табл. с такими условиями, помогите переделать плз!!!
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37583451
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя поподробнее по поводу условия? На небольшом примерчике?
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37583525
СТАРЧЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Таблица1
t1t2t3102030112131122232

Таблица2
t1t2t3102030112145122232

Результат
t1t2t3t3new11213145
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37583540
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно пишет, основной запрос не видит что там внутри подзапроса, так посмотри на свой запрос:
Код: sql
1.
2.
3.
Select a.*, b.kol as kolnew From ost_nach1 a WHERE ;
	!Exists (...);
	Into Cursor ost_nach3 Readwrite


Тут ты выбираешь из ost_nach1 то чего нет в ost_nach2
СТАРЧЕМне нужно все поля из 1 табл. + поле kol из 2 табл. с такими условиями, помогите переделать плз!!!
Наверно как-то так:
Код: sql
1.
2.
Select a.*, b.kol as kolnew;
   From ost_nach1 A left join ost_nach2 B on a.Sort= b.Sort And a.cena= b.cena And a.zw= b.zw And a.kol= b.kol
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37583548
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На твоих данных так:
Код: sql
1.
2.
select Tab1.*, Tab2.t3 as t3new;
   from Tab1 left join Tab2 on Tab1.t1 = Tab2.t1 and Tab1.t2 = Tab2.t2
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37583553
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если совпадения не нужны, то добавь where:
Код: sql
1.
2.
3.
select Tab1.*, Tab2.t3 as t3new;
   from Tab1 left join Tab2 on Tab1.t1 = Tab2.t1 and Tab1.t2 = Tab2.t2;
   where Tab1.t3 != Tab2.t3
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37583574
СТАРЧЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Нет, как то не так(

Мне нужно сравнить две таблицы по условию:
Код: sql
1.
a.Sort= b.Sort And a.cena= b.cena And a.zw= b.zw


и в третью загнать строчки только те у которых a.KOL<>b.KOL?, причем поместить в третью a.KOL и b.KOL
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37583622
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СТАРЧЕDima T,

Нет, как то не так(
это я на твой первый пост отвечал, там непонятно было что ты хочешь получить. Так тебе надо:
Код: sql
1.
2.
3.
Select a.*, b.kol as kolnew;
   From ost_nach1 A left join ost_nach2 B on a.Sort= b.Sort And a.cena= b.cena and a.zw= b.zw;
   where a.kol != b.kol
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37584372
СТАРЧЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

вот скрин таблиц,

Код: sql
1.
2.
3.
4.
Select a.*, b.kol as kolnew;
   From ost_nach1 A left join ost_nach2 B on a.Sort= b.Sort And a.cena= b.cena and a.zw= b.zw;
   where a.kol != b.kol  ;
     Into Cursor ost_nach3 Readwrite



а нужно получить такую таблицу:
ModZwSortCenaKolKolnewRsNkCene403151861194300580600204429818.50
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37584374
СТАРЧЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исправлено:
ModZwSortCenaKolKolnewRsNkCene403151861194300580600204429818.50
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37584392
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В целом запрос строится так:
Код: sql
1.
2.
3.
select A.*, B.что-то as НовоеЗначение;
   from A join B on А.Ключ = B.Ключ;
   where A.что-то != B.что-то


если ключ составной, поэтому А.Ключ = B.Ключ пишется так
А.Поле1 = B.Поле1 and А.Поле2 = B.Поле2 and ...

Судя по твоему скриншоту есть еще одно ключевое поле которое ты забыл упомянуть: MOD
Код: sql
1.
2.
3.
4.
Select a.*, b.kol as kolnew;
   From ost_nach1 A left join ost_nach2 B on a.Mod = b.Mod and a.Sort= b.Sort And a.cena= b.cena and a.zw= b.zw;
   where a.kol != b.kol  ;
     Into Cursor ost_nach3 Readwrite



PS Не знаю что такое MOD, но похоже на ключевое поле, если так вполне достаточно только его.
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37584422
СТАРЧЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Да точно, после напряженного дня я и не заметил!!!)

Спасибо!!!! Выручил!!!
...
Рейтинг: 0 / 0
Помогите с запросом!!!
    #37584446
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один момент есть, если запись есть в А и отсутствует в B - этот запрос ее не выберет, в этом случае надо так:
Код: sql
1.
2.
3.
4.
Select a.*, nvl(b.kol, 0) as kolnew;
   From ost_nach1 A left join ost_nach2 B on a.Mod = b.Mod and a.Sort= b.Sort And a.cena= b.cena and a.zw= b.zw;
   where a.kol != nvl(b.kol, 0)  ;
     Into Cursor ost_nach3 Readwrite
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом!!!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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