Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите сделать выборку / 6 сообщений из 6, страница 1 из 1
30.05.2006, 10:18
    #33759729
sea.kukudas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
имеется следущая структура таблиц в приложенном файле
делаю правильную выборку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE SQL VIEW historydevview as ;
select historydev.*, ;
IIF(ALLTRIM(Historydev.kodunion)==ALLTRIM(Cabinets.nom_cab),ALLTRIM(Cabinets.name_cab),SPACE(FSIZE("name_cab","cabinets"))) AS storedplace,;
IIF(ALLTRIM(Historydev.kod_device)==ALLTRIM(Vocab.nom_voc),ALLTRIM(Vocab.xvalue),SPACE(FSIZE("xvalue","vocab"))) AS namedevice, ;
FROM register!historydev left OUTER JOIN register!cabinets ;
   ON  Historydev.kodunion = cabinets.nom_cab ;
   left OUTER JOIN register!vocab ;
   ON  Historydev.kod_device = vocab.nom_voc

Но хочу добавить еще одно поле когда
Historydev.kod_brand = vocab.nom_voc

Но если подписываю то все нарушается
Код: plaintext
1.
2.
   left OUTER JOIN register!vocab ;
   ON  Historydev.kod_brand = vocab.nom_voc

Возможно ли все это сделать в одном view или придется часть переносить?
...
Рейтинг: 0 / 0
30.05.2006, 11:11
    #33759900
sea.kukudas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Более понятно если рассказать то я хочу поле vocab.xvalue при равенстве
historydev.kod_device = vocab.nom_voc расскидать в одно поле, а при равенстве historydev.kod_brand = vocab.nom_voc в другое
...
Рейтинг: 0 / 0
30.05.2006, 11:19
    #33759935
sea.kukudas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Вот то что должно получиться но только из 2 view
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE SQL VIEW historydevview as ;
select historydev.*, IIF(ALLTRIM(Historydev.kodunion)==ALLTRIM(Cabinets.nom_cab),ALLTRIM(Cabinets.name_cab),SPACE(FSIZE("name_cab","cabinets"))) AS storedplace,;
IIF(ALLTRIM(Historydev.kod_device)==ALLTRIM(Vocab.nom_voc),ALLTRIM(Vocab.xvalue),SPACE(FSIZE("xvalue","vocab"))) AS namedevice ;
FROM register!historydev left OUTER JOIN register!cabinets ;
   ON  Historydev.kodunion = cabinets.nom_cab ;
   left OUTER JOIN register!vocab ;
   ON  Historydev.kod_device = vocab.nom_voc

CREATE SQL VIEW FINALVIEW as ;
select historydevview.*, ;
IIF(ALLTRIM(Historydevview.kod_brand)==ALLTRIM(Vocab.nom_voc),ALLTRIM(Vocab.xvalue),SPACE(FSIZE("xvalue","vocab"))) AS namedevice ;
FROM register!historydevview left OUTER JOIN register!vocab ;
   ON  Historydevview.kod_brand = vocab.nom_voc
...
Рейтинг: 0 / 0
01.06.2006, 17:55
    #33766964
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Hi sea.kukudas!

Если в запросе необходимо 2 раза использовать одну и ту-же таблицу (например
по разному связывая её с остальными таблицами запроса), то используются
локальные алиасы - всё это подробно описано в хелпе.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
05.06.2006, 17:06
    #33772936
Sea.kukudas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Сделал как вы сказали Igor

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE SQL VIEW historydevview as ;
select historydev.*, IIF(ALLTRIM(Historydev.kodunion)==ALLTRIM(Cabinets.nom_cab),ALLTRIM(Cabinets.name_cab),SPACE(FSIZE("name_cab","cabinets"))) AS stored,;
IIF(ALLTRIM(Historydev.kod_device)==ALLTRIM(Vocab.nom_voc),ALLTRIM(Vocab.xvalue),SPACE(FSIZE("xvalue","vocab"))) AS namedevice, ;
IIF(ALLTRIM(Historydev.kod_brand)==ALLTRIM(Vocab.nom_voc),ALLTRIM(Vocab.xvalue),SPACE(FSIZE("xvalue","vocab"))) AS namebrand ;
FROM register!historydev left OUTER JOIN register!cabinets ;
   ON  Historydev.kodunion ==cabinets.nom_cab ;
     left OUTER JOIN register!vocab ;
   ON Historydev.kod_device == vocab.nom_voc ;
     left OUTER JOIN register!vocab Vocab_b ;
   ON  Historydev.kod_brand == vocab_b.nom_voc

Но полседняя подцепленная колонка все равно выводит неправильный результат некоторые строки теряются.

Что не так?
...
Рейтинг: 0 / 0
06.06.2006, 06:44
    #33773736
sea.kukudas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Получился такой код спасибо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE SQL VIEW historydevview AS ;
SELECT historydev.*, ;
IIF(ALLTRIM(Historydev.kodunion)==ALLTRIM(Cabinets.nom_cab),ALLTRIM(Cabinets.name_cab),SPACE(FSIZE("name_cab","cabinets"))) AS stored, ;
IIF(ALLTRIM(Historydev.kod_device)==ALLTRIM(vocab_a.nom_voc),ALLTRIM(vocab_a.xvalue),SPACE(FSIZE("nom_voc","vocab"))) AS namedevice, ;
IIF(ALLTRIM(Historydev.kod_brand)==ALLTRIM(vocab_b.nom_voc),ALLTRIM(vocab_b.xvalue),SPACE(FSIZE("nom_voc","vocab"))) AS namebrand ;
FROM register!historydev ;
   left OUTER JOIN register!cabinets ;
     ON  Historydev.kodunion == cabinets.nom_cab ;
   left OUTER JOIN register!vocab Vocab_a;
     ON  Historydev.kod_device == Vocab_a.nom_voc ;
   left OUTER JOIN register!vocab Vocab_b;
     ON  Historydev.kod_brand == Vocab_b.nom_voc
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите сделать выборку / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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