Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизSql Найти похожие ветки
← →
gost © (2006-06-23 15:09) [0]Помогите, пожалуйста, написать sql запрос. 3 таблицы:
1. RA (рекламные агентства), в ней находится поля RKod, RName.
2. VRA (виды деятельности рекламного агентства), в ней поля - VRAKod, VRAKodRA, VRAKodVD.
3. WidD (виды деятельности): WKod, WName.
Нужно получить данные по рекламным агентствам, которые занимаются несколькими видами деятельности одновременно.
Например, 1 рекламное агентство занимается и телевидением, и газетами, и радио. Нужно выбрать такое агентство.
Для определения видов деятельности, по которым нужно найти рекламные агентства, создаю таблицу Wid с полем f1, в котором хранятся коды видов деятельности, по которым выбираются рек.агентства.
Писала такой запрос: select RName from RA, VRA, WidD where RKOd=VRAKOdRA and VRAKodVD = all (select f1 from Wid) and VRAKodVD=WKod
Естественно, что такой запрос не работает.
Например, в таблице VRA записи:
VRAKod VRAKodRA VRAKodVD
1 1 1
2 1 2
3 1 3
4 2 1
5 3 2
6 3 3
Пользователь хочет выбрать рекламные агентства, у которых вид деятельности (ВД) 1 и 2.
Он должен получить отчет - 1.
В другой раз хочет выбрать РА, у которых ВД - 2 и 3.
Получает - 1, 3.
Как составить такой запрос?
← →
ANB © (2006-06-23 15:22) [1]select * from RA where RA.RKod in (select VRA.VRAKodRA from VRA where VRA.VRAKodVD in (2, 3))
← →
Sergey13 © (2006-06-23 15:32) [2]А зачем топики то плодить?
http://delphimaster.net/view/2-1151045283/
← →
ANB © (2006-06-23 15:33) [3]Не заметил, уточняю :
select * from RA where RA.RKod in (select VRA.VRAKodRA from VRA, WidD where VRA.VRAKodVD = WidD.F1)
← →
gost © (2006-06-23 15:56) [4]Спасибо решение уже найдено.
select ra.rname from ra, vra, widd
where ra.rkod = vra.vrakodra and vra.vrakodvd = widd.wkod and
wkod in (select f1 from wid)
group by ra.rname
having count (vra.vrakodra) > 1
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c