Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.28;
Скачать: CL | DM;

Вниз

Вернуть "First" с условием   Найти похожие ветки 

 
ivanoff   (2008-10-01 15:26) [0]

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 15:34) [1]

надо использовать закрытое объединение, а не открытое


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

это как?

INNER JOIN

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


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

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


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


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


???


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

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


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


> ivanoff   (01.10.08 15:51) [4]


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


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

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

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


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

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

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


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


> ivanoff   (01.10.08 16:09) [7]


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


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


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


> ели нет


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

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


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

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

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


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

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

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


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

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


 
Sergey13 ©   (2008-10-01 16:50) [13]

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


 
Johnmen ©   (2008-10-01 16:53) [14]

Тоже потренирую телепатию :)
Вот это что-ли:
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


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

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

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


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

:)


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


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


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


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


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


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

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

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

...
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:23) [19]


> ivanoff   (01.10.08 17:20) [18]


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


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

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


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


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


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



Страницы: 1 вся ветка

Текущий архив: 2009.06.28;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.013 c
2-1241724625
<X>
2009-05-07 23:30
2009.06.28
Работа с меню


4-1211888967
Сергей
2008-05-27 15:49
2009.06.28
Хуки


15-1240547895
123-ий
2009-04-24 08:38
2009.06.28
Клиент для IP-телефонии


2-1242037565
TheEd
2009-05-11 14:26
2009.06.28
Модификация вида lookup-поля


9-1152026361
Frol
2006-07-04 19:19
2009.06.28
математический маятник