Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: запрос
 
 автор: posterminal   (29.10.2008 в 12:08)   личное сообщение
 
 

написал запрос, но он выбирает значение, если вполях ns1 и ns2 есть записи, а как сделать чтобы выбирались все значения когда заполнено поле ns1 или ns2. Знаю что через or но что-то у меня не получается
SELECT AKC97P.NP, AKC97P.FIO, AKC97P.NS1, AKC97P_1.FIO, AKC97P.NS2, AKC97P_2.FIO
FROM (AKC97P INNER JOIN AKC97P AS AKC97P_1 ON AKC97P.NS1 = AKC97P_1.NP) INNER JOIN AKC97P AS AKC97P_2 ON AKC97P.NS2 = AKC97P_2.NP
GROUP BY AKC97P.NP, AKC97P.FIO, AKC97P.NS1, AKC97P_1.FIO, AKC97P.NS2, AKC97P_2.FIO
HAVING (((AKC97P.NP)=[000]));

  Ответить  
 
 автор: osmor   (29.10.2008 в 12:29)   личное сообщение
 
 

...where nz(ns1,"") <> "" or nz(ns2,"") <> ""

  Ответить  
 
 автор: posterminal   (29.10.2008 в 12:46)   личное сообщение
 
 

SELECT AKC97P.NP, AKC97P.FIO, AKC97P.NS1, AKC97P_1.FIO, AKC97P.NS2, AKC97P_2.FIO
FROM (AKC97P INNER JOIN AKC97P AS AKC97P_1 ON AKC97P.NS1=AKC97P_1.NP) INNER JOIN AKC97P AS AKC97P_2 ON AKC97P.NS2=AKC97P_2.NP
where nz(AKC97P.ns1,"") <> "" or nz(AKC97P.ns2,"") <> ""
GROUP BY AKC97P.NP, AKC97P.FIO, AKC97P.NS1, AKC97P_1.FIO, AKC97P.NS2, AKC97P_2.FIO;
тот же результат

  Ответить  
 
 автор: Lukas   (29.10.2008 в 13:03)   личное сообщение
 
 

Какой тип данных полей ns1 и ns2?

  Ответить  
 
 автор: posterminal   (29.10.2008 в 14:18)   личное сообщение
 
 

числовой

  Ответить  
 
 автор: osmor   (29.10.2008 в 13:15)   личное сообщение
 
 

у Вас еще эти поля используются в Join, если в них Null, то эти записи будут пропущены
попробуйте в Join использовать nz

  Ответить  
 
 автор: posterminal   (29.10.2008 в 14:25)   личное сообщение
 
 

плдскажите как

  Ответить  
 
 автор: posterminal   (29.10.2008 в 14:32)   личное сообщение
 
 

SELECT AKC97P.NP, AKC97P.FIO, AKC97P.NS1, AKC97P_1.FIO, AKC97P.NS2, AKC97P_2.FIO
FROM (AKC97P left JOIN AKC97P AS AKC97P_1 ON AKC97P.NS1 = AKC97P_1.NP) left JOIN AKC97P AS AKC97P_2 ON AKC97P.NS2 = AKC97P_2.NP
WHERE (((nz([AKC97P].[ns1],0))>0)) OR (((nz([AKC97P].[ns2],0))>0))
GROUP BY AKC97P.NP, AKC97P.FIO, AKC97P.NS1, AKC97P_1.FIO, AKC97P.NS2, AKC97P_2.FIO;
это работает

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList