Страница 1 из 1

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

Добавлено: 19 ноя 2004, 14:01
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? ???

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

Добавлено: 19 ноя 2004, 14:42
JackVn
Так ты сам такое условие задал, первой же строчкой xlOS.innum == katos.innum(noindex) ;D

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

Добавлено: 19 ноя 2004, 15:05
oiko
Нужны 2 вьюхи, а как ты склеишь результат решай сам либо во временной таблице либо выгружай в один файл. Галактический СКЛ беден и нищ.

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

Добавлено: 19 ноя 2004, 15:07
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.

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

Добавлено: 19 ноя 2004, 15:13
oiko
А еще лучше глянь содержимое chk1. Ухохочешся.

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

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

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

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


без синонима как-то можно построить, печенкой чувствую...... ;D

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

Добавлено: 19 ноя 2004, 18:28
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

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

Добавлено: 22 ноя 2004, 11:10
oiko
Ухохочешся в смысле что нужно правильно строить вьюху и бегать по ней а не по синонимам таблиц входящим в нее, пример JackVen аналогичен твоему, т.к. вьюха не содержит всех данных. Это пример убогого галактического СКЛ. Пример предложеный Sth всем неплох кроме того что это запрос не по индексам, и в галке на приличном по размеру катосе он будет выполнятся часами.
Еще раз повторюсь на галактическом СКЛ (это такой новый термин) нормальные кострукции невозможны, приходится извращатся кто как может.

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

Добавлено: 24 ноя 2004, 14:23
blackoff
sth СПАСИБО!
вот оно!!! то что искал...
надо было or isvalid поставить!

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

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

Чем отличается
isValid(...) от isValidAll(...)
???

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

Добавлено: 24 ноя 2004, 14:56
Deinis