powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сложный запрос
55 сообщений из 55, показаны все 3 страниц
Сложный запрос
    #33567487
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДАно:
Table1 - Поля: ID, Quant
Table2 - Поля: ID, Quant

Требуется:
1)Выбрать все значения из Table1, где Quant > 0 (не проблема)
Table3:
Select
Id As Id,
Quant As Quant
From
Table1
Where
Quant > 0

2)Выбрать все значения из получившейся Table3. в итоге должна получится Table4 = Table3 за исключением строк в которых Table2.ID = Table3.ID. в этих строках Quant = Table3.Quant - Table2.Quant

У меня получается отобрать только те строки в которых ID равны.
как сделать???
...
Рейтинг: 0 / 0
Сложный запрос
    #33567520
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from Table1 where Quant>0 and ID not in(select ID from Table2)
...
Рейтинг: 0 / 0
Сложный запрос
    #33567549
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMedselect * from Table1 where Quant>0 and ID not in(select ID from Table2)
дык получить их в разных таблица можно. как объеденить в одну?
...
Рейтинг: 0 / 0
Сложный запрос
    #33567559
mvictor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что то типа этого

select t3.id,t3.quant from table3 t3 where not exists (select 1 from table2 where t3.id=table2.id)
union all
select t3.id,t3.quant-table2.quant from table3 t3
join table2 on t3.id=table2.id
...
Рейтинг: 0 / 0
Сложный запрос
    #33567646
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firerer AleksMedselect * from Table1 where Quant>0 and ID not in(select ID from Table2)
дык получить их в разных таблица можно. как объеденить в одну?

Что объеденить в одну?
...
Рейтинг: 0 / 0
Сложный запрос
    #33567757
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а незя как нить условие поставить. типа если есть строка в табле2 тогда вычесть, иначе не вычетать?
...
Рейтинг: 0 / 0
Сложный запрос
    #33567777
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMed
Что объеденить в одну?

я так понимаю этот запрос выберет все записи из таблицы2 которые не упоминаются в таблице1?
...
Рейтинг: 0 / 0
Сложный запрос
    #33567804
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это:
авторДАно:
Table1 - Поля: ID, Quant
Table2 - Поля: ID, Quant

Требуется:
1)Выбрать все значения из Table1, где Quant > 0 (не проблема)
Table3:
Select
Id As Id,
Quant As Quant
From
Table1
Where
Quant > 0

2)Выбрать все значения из получившейся Table3. в итоге должна получится Table4 = Table3 за исключением строк в которых Table2.ID = Table3.ID.
...
Рейтинг: 0 / 0
Сложный запрос
    #33567827
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMedЭтот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это:

там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant "
в этом продолжении вся загвоздка
...
Рейтинг: 0 / 0
Сложный запрос
    #33567840
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firerer AleksMedЭтот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это:

там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant "
в этом продолжении вся загвоздка

Этих идентификаторов нету в Table2. Что ты хочешь вычитать? :)
Или неправильно описана задача.
...
Рейтинг: 0 / 0
Сложный запрос
    #33567864
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
firerer
там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant "
в этом продолжении вся загвоздка

ТОесть конешно Тable1.Quant - Table2.Quant
...
Рейтинг: 0 / 0
Сложный запрос
    #33567916
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если связь между таблицами Table1 и Table2 один-к-одному или много-к-одному, то можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT ;
	Table1.ID, ;
	Table1.Quant - NVL(Table2.Quant, 0 ) as Quant ;
FROM Table1 ;
LEFT JOIN Table2 ON Table1.ID = Table2.ID ;
WHERE Table1.Quant >  0 

Если одной записи из таблицы Table1 может соответствовать несколько записей из таблицы Table2, то такая схема не годится. Но в этом случае следует уточнить, какую сумму вычитать из суммы каждой записи Table1.
...
Рейтинг: 0 / 0
Сложный запрос
    #33567944
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМЕсли связь между таблицами Table1 и Table2 один-к-одному или много-к-одному

связь следующая. для каждого Table1.ID может существовать только одна запись с Table2.ID = Table1.ID.
но ее может и не быть вовсе. вот в чем загвоздка.
...
Рейтинг: 0 / 0
Сложный запрос
    #33567958
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMed firerer AleksMedЭтот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это:

там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant "
в этом продолжении вся загвоздка

Этих идентификаторов нету в Table2. Что ты хочешь вычитать? :)
Или неправильно описана задача.

что значит нету?????
написано же если Table1.ID = Table2.ID Тогда Table3.Quant = Table1.Quant - Table2.Quant.
Если в Table2 Нет вообще строки с ID = Table1.ID Тогда Table3.Quant = Table1.Quant

все так и написал.
...
Рейтинг: 0 / 0
Сложный запрос
    #33567966
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firerer
2)Выбрать все значения из получившейся Table3. в итоге должна получится Table4 = Table3 за исключением строк в которых Table2.ID = Table3.ID. в этих строках Quant = Table3.Quant - Table2.Quant

У меня получается отобрать только те строки в которых ID равны.
как сделать???

Если я правильно понял в тех строках где Table2.ID = Table3.ID нужно заменить
Quant на Table1.Quant - Table2.Quant

Select IIF(Table2.ID = Table3.ID ,T1.Quant,Table1.Quant - Table2.Quant )...
Попробуй может получится:)
...
Рейтинг: 0 / 0
Сложный запрос
    #33567971
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firerer AleksMed firerer AleksMedЭтот запрос выберет записи из таблицы 1 у которых Quant>0 и идентификаторых которых отсутствуют в таблице 2. Т.е выполнится вот это:

там продолжение: "в этих строках Quant = Table3.Quant - Table2.Quant "
в этом продолжении вся загвоздка

Этих идентификаторов нету в Table2. Что ты хочешь вычитать? :)
Или неправильно описана задача.

что значит нету?????
написано же если Table1.ID = Table2.ID Тогда Table3.Quant = Table1.Quant - Table2.Quant.
Если в Table2 Нет вообще строки с ID = Table1.ID Тогда Table3.Quant = Table1.Quant

все так и написал.
Кто понял это с первого раза, поднимите руки?
Про остальное Володя Максимов уже написАл.
...
Рейтинг: 0 / 0
Сложный запрос
    #33567977
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 firerer чем тебя не устроило:
ВладимирМ
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT ;
	Table1.ID, ;
	Table1.Quant - NVL(Table2.Quant, 0 ) as Quant ;
FROM Table1 ;
LEFT JOIN Table2 ON Table1.ID = Table2.ID ;
WHERE Table1.Quant >  0 


а проблему надо вразумительней описывать, а то все изначально поняли совсем не то что ты имел ввиду. не хватает слов - приводи примеры.
...
Рейтинг: 0 / 0
Сложный запрос
    #33567986
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMed
Кто понял это с первого раза, поднимите руки?
Про остальное Володя Максимов уже написАл.
звиняюсь за сумбурность. с терминологией пока проблемы.

То что написал Владимир мне бы помогло наверное если бы драйвер поддерживал функцию NVL.
...
Рейтинг: 0 / 0
Сложный запрос
    #33567991
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой драйвер? В чем таблицы?
...
Рейтинг: 0 / 0
Сложный запрос
    #33568008
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TКакой драйвер? В чем таблицы?

"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:database"

таблицы Dbf
...
Рейтинг: 0 / 0
Сложный запрос
    #33568013
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подключаюсь через ODBC
...
Рейтинг: 0 / 0
Сложный запрос
    #33568021
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firererподключаюсь через ODBC
Из чего подключаешься?
...
Рейтинг: 0 / 0
Сложный запрос
    #33568026
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMed
Из чего подключаешься?
разве это принципиально?
...
Рейтинг: 0 / 0
Сложный запрос
    #33568047
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На крайняк при обработке - если Quant2 = NULL то брать Quant1 иначе Quant2
Код: plaintext
1.
2.
3.
4.
5.
SELECT ;
	Table1.ID, Table1.Quant as Quant1;
	Table1.Quant - Table2.Quant as Quant2;
FROM Table1 ;
LEFT JOIN Table2 ON Table1.ID = Table2.ID ;
WHERE Table1.Quant >  0 
...
Рейтинг: 0 / 0
Сложный запрос
    #33568050
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция NVL() эквивалентна такой конструкции

Код: plaintext
IIF(IsNull(Table2.Quant), 0 ,Table2.Quant)

Так что можешь попробовать написать так:

Код: plaintext
1.
2.
...
Table1.Quant - IIF(IsNull(Table2.Quant), 0 ,Table2.Quant) as Quant ;
...
...
Рейтинг: 0 / 0
Сложный запрос
    #33568072
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DIMM@
Если я правильно понял в тех строках где Table2.ID = Table3.ID нужно заменить
Quant на Table1.Quant - Table2.Quant

Select IIF(Table2.ID = Table3.ID ,T1.Quant,Table1.Quant - Table2.Quant )...
Попробуй может получится:)

Граждане, а почему так нельзя сделать. Или я чего не так понял?
...
Рейтинг: 0 / 0
Сложный запрос
    #33568085
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TНа крайняк при обработке - если Quant2 = NULL то брать Quant1 иначе Quant2
Код: plaintext
1.
2.
3.
4.
5.
SELECT ;
	Table1.ID, Table1.Quant as Quant1;
	Table1.Quant - Table2.Quant as Quant2;
FROM Table1 ;
LEFT JOIN Table2 ON Table1.ID = Table2.ID ;
WHERE Table1.Quant >  0 


вырезает из результата те строки которых нет в table2.


вторые сутки уже кручу в разные стороны.
...
Рейтинг: 0 / 0
Сложный запрос
    #33568136
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопщем краткая иллюстрация того чо надо
(с этого начать стоило бы наверно)
...
Рейтинг: 0 / 0
Сложный запрос
    #33568137
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда делай вообще без вычислений
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT ;
	Table1.ID, ;
	Table1.Quant as Quant1, ;
	Table2.Quant as Quant2 ;
FROM Table1 ;
LEFT JOIN Table2 ON Table1.ID = Table2.ID ;
WHERE Table1.Quant >  0 

А уже на клиенте вычитай из Quant1 те значения Quant2, которые отличны от NULL.
...
Рейтинг: 0 / 0
Сложный запрос
    #33568156
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firererвопщем краткая иллюстрация того чо надо
(с этого начать стоило бы наверно)
Ну так это обычный INNER JOIN
SELECT ;
Table1.ID, ;
Table1.Quant-Table2.Quant as Quant1 ;
FROM Table1 ;
INNER JOIN Table2 ON Table1.ID = Table2.ID ;
WHERE Table1.Quant > 0
...
Рейтинг: 0 / 0
Сложный запрос
    #33568172
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМТогда делай вообще без вычислений
А уже на клиенте вычитай из Quant1 те значения Quant2, которые отличны от NULL.

после получения результатов я уже с ними ничего сделать не могу. результат запроса является поставщиком данных для табличного поля. там все уже должно быть сформировано в том виде в котором должно быть показано.
...
Рейтинг: 0 / 0
Сложный запрос
    #33568217
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Select Table1.ID,;
IIF(Table1.ID = Table2.ID ,Table1.Quant - Table2.Quant,Table1.Quant );
From Table1,table2;
where Table1.Quant>0
...
Рейтинг: 0 / 0
Сложный запрос
    #33568226
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без проверки на NULL не обойтись
1. Сделай COM-объект на фоксе и юзай его из 1С
2. Попробуй NVL(Table1.Quant - Table2.Quant, 0) заменить на
- isnull(Table1.Quant - Table2.Quant, 0)
- iif(isnull(Table2.Quant), Table1.Quant, Table1.Quant - Table2.Quant)
3. Попробуй фоксовый ODBC-драйвер.
...
Рейтинг: 0 / 0
Сложный запрос
    #33568259
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так попробуй
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT Table1.ID, ;
	Table1.Quant - NVL(Table2.Quant, 0 ) as Quant ;
FROM Table1 ;
INNER JOIN Table2 ON Table1.ID = Table2.ID ;
WHERE Table1.Quant >  0 ;
union all (SELECT Table1.ID, ;
	Table1.Quant;
FROM Table1;
WHERE Table1.ID not in (select ID from Table2);
)
...
Рейтинг: 0 / 0
Сложный запрос
    #33568262
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опечатка
Код: plaintext
1.
2.
3.
SELECT Table1.ID, ;
	Table1.Quant - Table2.Quant as Quant ;
...
...
Рейтинг: 0 / 0
Сложный запрос
    #33568323
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DIMM@Select Table1.ID,;
IIF(Table1.ID = Table2.ID ,Table1.Quant - Table2.Quant,Table1.Quant );
From Table1,table2;
where Table1.Quant>0

Завис наглухо.
...
Рейтинг: 0 / 0
Сложный запрос
    #33568422
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопщем получился воттакой запрос:
Select
Orders.NomID As NomID,
Orders.Name As Name,
Orders.Art As Art,
Orders.QuantOrder As QuantOrder,
Rests.QuantRest As QuantRest,
IIf(Orders.NomID = Rests.NomID, Orders.QuantOrder - Rests.QuantRest, Orders.QuantOrder) As Necessary
From
(

Select
Nom.ID As NomID,
Nom.Descr As Name,
Nom.sp175 As Art,
Reg.sp479 As QuantOrder
From
sc60 As Nom
, RG480 As Reg
Where
(Reg.sp478 = Nom.ID)
AND
(Reg.Period = {d '2006-02-01'})
AND
(Reg.sp479 > 0)

) As Orders
,
(

Select
Reg.sp99 As NomID,
Sum(Reg.sp101) As QuantRest
From
RG98 As Reg
Where
(Reg.Period = {d '2006-02-01'})
Group By Reg.sp99

) As Rests
Where
(Rests.NomID = Orders.NomID)
AND
(Orders.QuantOrder > Rests.QuantRest)

Всем спасибо
Отдельно спасибо Dimm@ за конструкцию IIf()
...
Рейтинг: 0 / 0
Сложный запрос
    #33568450
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Незачто. Я тут по твоему примеру таблицы создал, и прогнал, как я советывал. Оно конечно не повисло и выборку правильно сделало, только сдублировало все Таbl1.ID по три раза. Подумал и понял что сглупил(звиняй что на ложный путь поставил, счас сижу думаю как тут завернуть что б правильно получалось(для себя)). Счастливо...
...
Рейтинг: 0 / 0
Сложный запрос
    #33568470
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что добавочка нужна:
Select Table1.ID,;
IIF(Table1.ID = Table2.ID ,Table1.Quant - Table2.Quant,Table1.Quant );
From Table1,table2;
where Table1.Quant>0 AND Table1.ID = Table2.ID
...
Рейтинг: 0 / 0
Сложный запрос
    #33568481
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMedПотому что добавочка нужна:
Select Table1.ID,;
IIF(Table1.ID = Table2.ID ,Table1.Quant - Table2.Quant,Table1.Quant );
From Table1,table2;
where Table1.Quant>0 AND Table1.ID = Table2.ID

у меня так и есть:
firerer
Where
(Rests.NomID = Orders.NomID)
AND
(Orders.QuantOrder > Rests.QuantRest)
...
Рейтинг: 0 / 0
Сложный запрос
    #33568489
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksMedПотому что добавочка нужна:
Select Table1.ID,;
IIF(Table1.ID = Table2.ID ,Table1.Quant - Table2.Quant,Table1.Quant );
From Table1,table2;
where Table1.Quant>0 AND Table1.ID = Table2.ID

Возможно мы по разному поняли условие. Здесь надо брать все tabl1.Id, а по вашему не равные tabl2.Id исключаться
...
Рейтинг: 0 / 0
Сложный запрос
    #33568507
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DIMM@ AleksMedПотому что добавочка нужна:
Select Table1.ID,;
IIF(Table1.ID = Table2.ID ,Table1.Quant - Table2.Quant,Table1.Quant );
From Table1,table2;
where Table1.Quant>0 AND Table1.ID = Table2.ID

Возможно мы по разному поняли условие. Здесь надо брать все tabl1.Id, а по вашему не равные tabl2.Id исключаться

Точно. Извиняюсь. :)
И в посте выше не INNER JOIN, а LEFT JOIN
...
Рейтинг: 0 / 0
Сложный запрос
    #33568527
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DIMM@
Возможно мы по разному поняли условие. Здесь надо брать все tabl1.Id, а по вашему не равные tabl2.Id исключаться
точно. исключаюца.
...
Рейтинг: 0 / 0
Сложный запрос
    #33568528
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksMed DIMM@ AleksMedПотому что добавочка нужна:
Select Table1.ID,;
IIF(Table1.ID = Table2.ID ,Table1.Quant - Table2.Quant,Table1.Quant );
From Table1,table2;
where Table1.Quant>0 AND Table1.ID = Table2.ID

Возможно мы по разному поняли условие. Здесь надо брать все tabl1.Id, а по вашему не равные tabl2.Id исключаться

Точно. Извиняюсь. :)
И в посте выше не INNER JOIN, а LEFT JOIN

А вы не могли бы посоветовать, как модернизировать мой запрос, что бы он правильно работал(не усложняя при этом сильно его структуру, и без JOIN)?
...
Рейтинг: 0 / 0
Сложный запрос
    #33568551
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без JOIN наверное не получится :)
А посему скрести мой последния запрос, поменяв INNER JOIN на LEFT JOIN, и добавив свой IIF() для разруливания NULL
...
Рейтинг: 0 / 0
Сложный запрос
    #33568563
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
firerer DIMM@
Возможно мы по разному поняли условие. Здесь надо брать все tabl1.Id, а по вашему не равные tabl2.Id исключаться
точно. исключаюца.

но сдесь чота предумывать надо. потомучто иначе запрос создает все возможные комбинации строк двух таблиц. а у мене в каждой по 5 тыщ их. вот комп и виснет
...
Рейтинг: 0 / 0
Сложный запрос
    #33568582
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уже петнацать менут щетает.
...
Рейтинг: 0 / 0
Сложный запрос
    #33568597
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересные результаты. вот что я получаю при моём запросе(из табл. примера Firevare):
id__Quanum
12 - -1
12 - 1
12 - 1
13 -5
13 -5
13 -5
11 -4
11 -4
11 -1
Потом добавляю GROUP BY Table1.id:
id__Quanum
11 -1
12 -1
13 -5
Как видно для id=12 было значение -1, а в Group стало 1, а для id=11 почему то 1 и 1
...
Рейтинг: 0 / 0
Сложный запрос
    #33568619
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DIMM@Интересные результаты. вот что я получаю при моём запросе(из табл. примера Firevare):
id__Quanum
12 - -1
12 - 1
12 - 1
13 -5
13 -5
13 -5
11 -4
11 -4
11 -1
Потом добавляю GROUP BY Table1.id:
id__Quanum
11 -1
12 -1
13 -5
Как видно для id=12 было значение -1, а в Group стало 1, а для id=11 почему то 1 и 1

предпологаю шо берецо последнее значение для группировки. функций то нету
...
Рейтинг: 0 / 0
Сложный запрос
    #33568726
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже что IIF придется выкидывать:)(знаю что не смешно) Как там у тебя продвигается? Возможно имеет смысл послушать старших и сделать две таблицы?
...
Рейтинг: 0 / 0
Сложный запрос
    #33568754
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видел причины, из-за которых ты отказался от двух таблиц. Не понятно.
Легко сохраняешься в курсор или другую таблицу(INTO CURSOR, INTO TABLE), производишь необходимые действия над данными и все это забираешь к себе в таблицу
...
Рейтинг: 0 / 0
Сложный запрос
    #33568773
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DIMM@Видел причины, из-за которых ты отказался от двух таблиц. Не понятно.
Легко сохраняешься в курсор или другую таблицу(INTO CURSOR, INTO TABLE), производишь необходимые действия над данными и все это забираешь к себе в таблицу
еси чесно для меня это тарабарщина.
где сохраняюсь, как сохраняюсь, куда сохраняюсь?
ябы сохранился. но незнаю как тут можно сохраница
...
Рейтинг: 0 / 0
Сложный запрос
    #33568799
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура запроса примерно такая(упрощенно):
SELECT ...
FROM...
JOIN...
WHERE ...
INTO CURSOR nameCursor - сохраняет выборку в Курсор(временный файл), данные из него могут быть предъявлены командой BROWSE, напечатаны, и т.д. Курсор может быть обработан другой командой SELECT.
или
INTO TABLE nameTable - тоже только в таблицу(она будет доступна и после закрытия FOX)
...
Рейтинг: 0 / 0
Сложный запрос
    #33572873
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще вопрос. у меня почемуто больше одного джоина не делает.
пишет Ошибка в предложении FRom.
Select Tab1.a, Tab2.b, tab3.c
From tab1
Left join
Tab2 On Tab2.ID = Tab1.ID
Left join
Tab3 On Tab3.ID = Tab1.ID

это так и должно быть?
...
Рейтинг: 0 / 0
Сложный запрос
    #33578622
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi firerer!

Ты бы для начала поменял ODBC драйвер на VFP-ный, он хоть и старенький, но
не такой замшелый как "MS dBase Driver"

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
55 сообщений из 55, показаны все 3 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сложный запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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