Вопрос:

Как перечислить имя участника и адрес, членство в котором подлежит обновлению?

sql oracle

41 просмотра

2 ответа

167 Репутация автора

Я получаю это сообщение об ошибке «отсутствует правильная скобка», как при использовании следующего запроса SQL:

SELECT G_MEMBERSHIP.MEMBER_ID, DATE_ADD(G_MEMBERSHIP.RENEWAL_DATE,INTERVAL 1 YEAR)  WHERE G_MEMBERSHIP.RENEWAL_DATE > CURDATE()
FROM G_MEMBERSHIP
INNER JOIN G_MEMBER
ON G_MEMBERSHIP.MEMBER_ID = G_MEMBER.MEMBER_ID
Автор: Tommy Chong Источник Размещён: 13.04.2017 06:05

Ответы (2)


1 плюс

9592 Репутация автора

WHERE идет после JOIN

SELECT G_MEMBERSHIP.MEMBER_ID, DATE_ADD(G_MEMBERSHIP.RENEWAL_DATE,INTERVAL 1 YEAR)  
FROM G_MEMBERSHIP
INNER JOIN G_MEMBER
  ON G_MEMBERSHIP.MEMBER_ID = G_MEMBER.MEMBER_ID
WHERE G_MEMBERSHIP.RENEWAL_DATE > CURDATE()
Автор: JohnHC Размещён: 13.04.2017 06:06

0 плюса

26420 Репутация автора

Решение
SELECT G_MEMBERSHIP.MEMBER_ID,add_months(G_MEMBERSHIP.RENEWAL_DATE,12)  
FROM G_MEMBERSHIP
INNER JOIN G_MEMBER
ON G_MEMBERSHIP.MEMBER_ID = G_MEMBER.MEMBER_ID
WHERE G_MEMBERSHIP.RENEWAL_DATE > current_date

Ps

+ INTERVAL '1' рискованно

например

select date '2012-02-29' + INTERVAL '1' YEAR from dual;

ORA-01839: дата недействительна для указанного месяца

select add_months (date '2012-02-29',12) from dual

2013-02-28 00:00:00

Автор: David דודו Markovitz Размещён: 13.04.2017 06:31
Вопросы из категории :
32x32