У меня есть запрос, что мне нужно вернуть: NIC, имя и возраст женского пола людей в возрасте от 10 до 15 лет или кто интерпретировал как минимум один характер в программе и родился до 2000 года Примечания: Вы можете использовать строитель присоединитьсяOracle: как получить возраст с годом рождения
столов являются:
людей -> НИК; имя ; Пол ; год рождения
толкование -> люди; программа; характер
Так что для этого сетевого адаптера, имени и возраста женского пола людей в возрасте от 10 до 15 лет я использую
SELECT to_char(sysdate,'YYYY')-p1.birth as age , p.nic , p.name
FROM people p
WHERE (p.gender ='F')
AND (SELECT to_char(sysdate,'YYYY')-p1.birth as age
FROM people p1
WHERE (p1.age BETWEEN 10 AND 15);
или которые интерпретируются по крайней мере один символ в программе и родились до 2000 года
UNION
Select *
From interpret i , people p1
Where (i.people = p1.nic)
And(p1.character is not null)
and (p1 < 2000);
Но особенно на первом мире кода дает мне 2 основные ошибки в этом AND (SELECT to_char(sysdate,'YYYY')-p1.birth as age
и в этом WHERE (p1.age BETWEEN 10 AND 15);
попробовать to_number() вместо to_char() – blckbird
Вы вычитанием 'date' из' string' - не очень разумная вещь, чтобы сделать. Если вы хотите разницу в днях между двумя 'date', просто вычтите их:' sysdate - p1.birth'. @blckbird: 'to_number()' в 'date' тоже будет не так –
Вы хотите что-то подобное на втором выбрать? и p1.birth <2000 – Armin