Помогите с запросом пожалуйста!

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
blackoff
Постоянный гость
Сообщения: 55
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тверь/Москва
Контактная информация:

Помогите с запросом пожалуйста!

Сообщение blackoff »

Есть таблица xlOS в которой находится реестр карточек с суммами, мне нужно сделать вьюху в котрой отбираются только те записи, которых нет в katos или у которых отличаются суммы (стоимость и износ)

Сделал такую вьюху:

.create view chk1 as
select *,spkatos.stoim, spkatos.sumizn from xlOS
where
((
xlOS.innum == katos.innum(noindex)
and nPodr == katos.cpodr(noindex)
and katos.nrec == spkatos.ckatos
and 281474976710667 == spkatos.cnastros
))
and (xlOS.stoim <> spkatos.stoim or xlOS.sumizn <> spkatos.sumizn)
order by xlOS.innum
;

nPodr - нрек подразделения который выбирается.

Это работает ОК, за исключением того что сюда не попадают карточки, которые есть в xlOS, но которых нет в katos.

Так вот, как переписать вьюху, чтобы попадали карточки, которых нет в katos? ???
JackVn
Постоянный гость
Сообщения: 82
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва, Минск
Контактная информация:

Re: Помогите с запросом пожалуйста!

Сообщение JackVn »

Так ты сам такое условие задал, первой же строчкой xlOS.innum == katos.innum(noindex) ;D
oiko
Местный житель
Сообщения: 418
Зарегистрирован: 29 мар 2005, 17:49

Re: Помогите с запросом пожалуйста!

Сообщение oiko »

Нужны 2 вьюхи, а как ты склеишь результат решай сам либо во временной таблице либо выгружай в один файл. Галактический СКЛ беден и нищ.
JackVn
Постоянный гость
Сообщения: 82
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва, Минск
Контактная информация:

Re: Помогите с запросом пожалуйста!

Сообщение JackVn »

А так, все очень просто, через синонимы можно поработать
.create view chk1
var nPodr : Comp
as select * from xlOS, synonym xlOS xlOS1 where
((
xlOS.innum == katos.innum
and Word(15) == KatOS.Tidk
and Comp(0) == KatOS.cHigerOS
and nPodr == katos.cpodr(noindex)
and katos.nrec == spkatos.ckatos
and comp(281474976710667) == spkatos.cnastros
and xlOs1.Innum /== Katos.Innum
))

Попробуй потом пробежаться по таблице xlOs1.
oiko
Местный житель
Сообщения: 418
Зарегистрирован: 29 мар 2005, 17:49

Re: Помогите с запросом пожалуйста!

Сообщение oiko »

А еще лучше глянь содержимое chk1. Ухохочешся.
blackoff
Постоянный гость
Сообщения: 55
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тверь/Москва
Контактная информация:

Re: Помогите с запросом пожалуйста!

Сообщение blackoff »

2 JackVen:
неее...не то немного что я хотел
получается что синонимы никак не связаны?!?!?!
Опять таки получается надо два раза по таблице потом пробежать, сначала выводить где суммы расходятся, а потом уже выводить того чего нет в катосе.

А хочется сделать все за один раз
или я не правильно рассуждаю?

2 Oiko:
а чего ухохочешься то? ничо смешного не нашел ;)
___________


без синонима как-то можно построить, печенкой чувствую...... ;D
sth
Постоянный обитатель
Сообщения: 148
Зарегистрирован: 29 мар 2005, 17:49

Re: Помогите с запросом пожалуйста!

Сообщение sth »

.create view chk1 as
select *,spkatos.stoim, spkatos.sumizn from xlOS
where
((
xlOS.innum == katos.innum(noindex)
and nPodr == katos.cpodr(noindex)
and katos.nrec == spkatos.ckatos
and 281474976710667 == spkatos.cnastros
))
and (xlOS.stoim <> spkatos.stoim or xlOS.sumizn <> spkatos.sumizn)

or (not isvalid(tnkatos))

order by xlOS.innum
oiko
Местный житель
Сообщения: 418
Зарегистрирован: 29 мар 2005, 17:49

Re: Помогите с запросом пожалуйста!

Сообщение oiko »

Ухохочешся в смысле что нужно правильно строить вьюху и бегать по ней а не по синонимам таблиц входящим в нее, пример JackVen аналогичен твоему, т.к. вьюха не содержит всех данных. Это пример убогого галактического СКЛ. Пример предложеный Sth всем неплох кроме того что это запрос не по индексам, и в галке на приличном по размеру катосе он будет выполнятся часами.
Еще раз повторюсь на галактическом СКЛ (это такой новый термин) нормальные кострукции невозможны, приходится извращатся кто как может.
blackoff
Постоянный гость
Сообщения: 55
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тверь/Москва
Контактная информация:

Re: Помогите с запросом пожалуйста!

Сообщение blackoff »

sth СПАСИБО!
вот оно!!! то что искал...
надо было or isvalid поставить!

а меня зациклило на and

Тогда попутный вопрос!!!!!!

Чем отличается
isValid(...) от isValidAll(...)
???
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Помогите с запросом пожалуйста!

Сообщение Deinis »

Ответить