Вниз
Скачать: CL | DM;

Вопрос по синтаксису SQL   Найти похожие ветки 

← →
axx   (2004-05-28 08:01) [0]

Здравствуйте господа. Вот сидел сейчас писал процедурку и возник у меня следующий вопрос:
Возможно ли писать в SQL запросе чтото вроде этого
---------
select Max(DataTime) from w_prod where ID,Parent_id=(Select ID,ParentID from w_prodtab where DISK=:Какоето значение)
---------
Я конечно же уже сделал все по другому. Просто стало ОЧЕНЬ интересно можно ли написать [ПОЛЕ1 и Поле2]=[Значение1 и Значение2]

ЗЫ Если вопрос ламерский то сильно не пинайте :-))


← →
roottim   (2004-05-28 08:13) [1]

select Max(DataTime) from w_prod where (ID,Parent_id)=(Select ID,ParentID from w_prodtab where DISK=:Какоето значение)


← →
axx   (2004-05-28 08:15) [2]

(ID,Parent_id) - ругается на ","


← →
sniknik ©   (2004-05-28 08:27) [3]

а так не пройдет?
select Max(a.DataTime) from w_prod a INNER JOIN w_prodtab b ON a.ID=b.ID AND a.Parent_id=b.Parent_id where b.DISK=:Какоето значение

у тебя что ID не уникально? зачем двойная проверка, лучше по моему сделать его уникальным.


← →
BoxTer   (2004-05-28 08:27) [4]

Можно, тока нада маненько подправить твой код:
select Max(DataTime) from w_prod where ID,Parent_id in(Select ID,ParentID from w_prodtab where DISK=:Какоето значение)


← →
axx   (2004-05-28 08:45) [5]

То sniknik
  я собственно так и сделал. А по поводу уникальности у меня FK на 2 поля ID,Parent_id в таблице w_prod.

То BoxTer
  "ID,Parent_id in" и снова на "," матерится. :-)


← →
axx   (2004-05-28 08:46) [6]

То sniknik
 Вернее не FK а PK


← →
Sandman25+1   (2004-05-28 09:03) [7]

Стандартный select.
select Max(A.DataTime) from w_prod A, w_prodtab B
where A.ID = B.id
 and A.ParentId=B.parentId
 and B.DISK=:Какоето значение


← →
slgeo ©   (2004-05-28 09:24) [8]


> select Max(DataTime) from w_prod where ID,Parent_id=(Select
> ID,ParentID from w_prodtab where DISK=:Какоето значение)


Помнится Грабер еще писал, что такой синтаксис не входит в стандарт SQL и возможность его использования определяется на усмотрение разработчика СУБД. Касательно IB могу сказать, что он не поддерживает такой синтаксис, а вот в Oracle такой вызов проходит на ура.


← →
DenK_vrtz ©   (2004-05-28 10:08) [9]

>slgeo ©   (28.05.04 09:24) [8]

>а вот в Oracle такой вызов проходит на ура

а вот с этого места по подробнее, какая версия ORACLE и сам запрос можно в студию?


← →
Соловьев ©   (2004-05-28 10:11) [10]


> axx   (28.05.04 08:01)

ХП не пробовал?


← →
slgeo ©   (2004-05-28 10:16) [11]


>to DenK_vrtz ©   (28.05.04 10:08) [9]


Версия 8.1.7

SELECT *
FROM CATEG c
WHERE (c.ID,c.COD) =
(SELECT id,r.COD
FROM REFDOC r WHERE r.id=c.id)

Запрос правда не имеет глубокого смысла :) , но синтаксически он правильный


← →
DenK_vrtz ©   (2004-05-28 10:26) [12]

>slgeo ©   (28.05.04 10:16) [11]

гы! :)

WHERE (поле,поле1) и where поле,поле1 - две большие разницы,
отсюда и вопрос, а так все ок (roottim   (28.05.04 08:13) [1] )! :)



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.02 c
8-1081370171
zumoz
2004-04-08 00:36
2004.06.20
dspack + tv tuner


1-1086703288
Tack83
2004-06-08 18:01
2004.06.20
Вызов DLL, написанной в C++


14-1086155496
viktor
2004-06-02 09:51
2004.06.20
подписи компонентов


1-1085493215
Виноградов Алексей
2004-05-25 17:53
2004.06.20
Файл текстового типа (textfile). Как узнать его размер ?


1-1086335644
Fast
2004-06-04 11:54
2004.06.20
Копировани котролов в RunTime




   Наверх