Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вернуть "First" с условием [Access]


Страницы:   1 2

ivanoff ©   (2008-10-01 15:26:00) 

SELECT
 First(T1.f1),
 First(T3.DataFld)       <------ ...

FROM T1
 LEFT JOIN T2 ON T1.id2 = T2.id
 LEFT JOIN T3 ON T1.id3 = T3.id

GROUP BY T1.id1


.... вот там нужно получить не первую запись а первую при условииT2.MyField = T3.MyField если таковых нету чтоб вернуло NULL


Сергей М.   (2008-10-01 17:35:00) [1]


> как мне там указать второе условие


Что значит "как" ? Средствами мастера конструирования запросов в составе MS Access !


ivanoff   (2008-10-01 17:31:00) [2]

и как мне там указать второе условие


Сергей М.   (2008-10-01 17:23:00) [3]


> ivanoff   (01.10.08 17:20) [18]


Воспользуйся виз.конструктором запросов самого Access'а - он сам построит лексически и синтаксически правильный текст интересующего тебя SQL-запроса.


ivanoff   (2008-10-01 17:20:00) [4]

я не говорил "в принципе" не принимает

в моем случае не принимает

...
FROM ((((T1
LEFT JOIN ...)
LEFT JOIN T2 ON T1.id2 = T2.id)
LEFT JOIN ...)
RIGHT JOIN T3 ON T1.id3 = T3.id)

-> Join expression not supported


Сергей М.   (2008-10-01 17:08:00) [5]


> Access не принимает RIGHT JOIN


С каких это пор ?
http://office.microsoft.com/en-us/access/HA012314891033.aspx?pid=CH100728991033


ivanoff   (2008-10-01 17:03:00) [6]

:)


> ON (T1.id3 = T3.id) AND (T2.MyField = T3.MyField)


я тож так думал но не принимает: Join expression not supported


ivanoff   (2008-10-01 17:00:00) [7]

неа...
у меня несколько связок LEFT JOIN и Access не принимает RIGHT JOIN

мне бы в ON условии присобачить (T1.id3 = T3.id) AND (T2.MyField = T3.MyField)


Johnmen   (2008-10-01 16:53:00) [8]

Тоже потренирую телепатию :)
Вот это что-ли:
SELECT
First(T1.f1),
First(T3.DataFld)      <------ ...

FROM T1
LEFT JOIN T2 ON T1.id2 = T2.id
LEFT JOIN T3 ON (T1.id3 = T3.id ) AND (T2.MyField = T3.MyField)

GROUP BY T1.id1


Sergey13   (2008-10-01 16:50:00) [9]

SELECT
T1.f1,
Count(T3.*),min(T3.DataFld)

FROM T1
LEFT JOIN T2 ON T1.id2 = T2.id
LEFT JOIN T3 ON T1.id3 = T3.id

GROUP BY T1.id1


Поросенок Винни-Пух   (2008-10-01 16:39:00) [10]

мои знакомые блондинки и то понятнее изъясняются


Сергей М.   (2008-10-01 16:37:00) [11]

А-а-а !.. похоже, я начал понимать, куда гнет автор)

Ему, видимо, RIGHT JOIN нужен, тогда при наличии хотя бы одной записи в T1 и отсутствии свя\занных записей в присоединенных таким образом T2 и T3 получится почти то что ему нужно - в НД будет одна запись с NULL во 2-м поле


ivanoff   (2008-10-01 16:30:00) [12]

так мой вопрос именно в том как построить условие так, чтоб получить ВСЕ записи из T1 а из T3 получить первое соответствующее условию.

если Т3.MyField не соответствует условию, запись из Т1 должна попасть в выборку а на место Т3 должно быть NULL -> что значит в Т3 нету записей где   (T1.id3 = T3.id) AND (T2.MyField = T3.MyField)


Сергей М.   (2008-10-01 16:28:00) [13]


> ivanoff   (01.10.08 16:09) [7]


Не прояснилось, зачем тебе этот NULL  ..


> если там есть что-то


Это условие соответствует непустому НД


> ели нет


Это условие соответствует пустомуНД.

В чем проблема, зачем тут еще нул какой-то понадобился ?


Поросенок Винни-Пух   (2008-10-01 16:16:00) [14]

если там есть что-то удовлетворяющее условию, ты ее получишь.
если нет, то ты сам хотел чтобы

вот там нужно получить не первую запись а первую при условии T2.MyField = T3.MyField


ivanoff   (2008-10-01 16:09:00) [15]

эту самую выборку потом нужно обработать если там есть что-то - использую это ели нет (=NULL) знаю что надобно добавить запись в T3 с нуйным условием

...хочу знать стандартными средствами реализуемо или нет


Сергей М.   (2008-10-01 16:02:00) [16]


> ivanoff   (01.10.08 15:51) [4]


И зачем тебе этот нул понадобился ?
Без него жизнь что ли не мила или что ?
Поясни ..


Поросенок Винни-Пух   (2008-10-01 16:01:00) [17]

если таковых не будет, выборка будет пустая


ivanoff   (2008-10-01 15:51:00) [18]


> если таковых нету чтоб вернуло NULL


???


Поросенок Винни-Пух   (2008-10-01 15:47:00) [19]

select ... from table 1, table 2
where table1.x = table2.y


ivanoff   (2008-10-01 15:46:00) [20]

это как?

INNER JOIN

не подходит  Access не принимает


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо