Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

SQL запрос из трех баз   Найти похожие ветки 

 
Алексей   (2004-03-03 03:15) [0]

Уважаемые мастаки. Помогите пожалуйста!!!
Есть три базы в Access:

SHIPS  CLASSES  OUTCOMES
------  -------- ---------
name   class  ship
class    resutl

Отношения: SHIPS.name - OUTCOMES.ship, SHIPS.class - CLASSES.class

Нужно для каждого class в CLASSES, имеющего не менее трех name в
SHIPS, определить количество name этого class, у которых OUTCOMES.result = TRUE.
Вывести: class - количество.
В запросе есть повторяющиеся class. Как убрать повторения?

SELECT ships.class, (SELECT count(*) FROM outcomes WHERE outcomes.ship = ships.name and outcomes.result = "TRUE")
FROM ships
WHERE ships.name in (
     SELECT outcomes.ship
     FROM outcomes
     WHERE outcomes.result = "sunk"  AND OUTCOMES.ship in (  
           SELECT ships.name
           FROM ships
           WHERE ships.class  IN (
                 SELECT class
                 FROM classes
                 WHERE 2 < (
                       SELECT count(*)
                       FROM ships
                       WHERE classes.class = ships.class))))


 
ЮЮ ©   (2004-03-03 04:07) [1]

>Нужно для каждого class в CLASSES, имеющего не менее трех name в SHIPS

SELECT class COUNT(name) cnt FROM SHIPS GROUP BY name HAVING  COUNT(name)> 2

>у которых OUTCOMES.result = TRUE.

SELECT name, class
FROM
 Ships  
 LEFT JOIN Outcomess ON Ships.name= Outcomes.ship
WHERE
 Outcomes.Result = "TRUE"

> определить количество name этого class

SELECT Classes3.Class, Count(Name) Cnt
FROM
 (
   SELECT class COUNT(name) cnt
   FROM SHIPS GROUP BY name HAVING  COUNT(name)> 2
 ) Classes3
 LEFT JOIN
 (
   SELECT Ships.name, Ships.class
   FROM
     Ships  
     LEFT JOIN Outcomess ON Ships.name= Outcomes.ship
   WHERE Outcomes.Result = "TRUE"
 ) Names
 ON Classes3.class = Names.class
GROUP by Classes3.Class


 
ЮЮ ©   (2004-03-03 06:25) [2]

Сорри, первый подзапрос, конечно:

SELECT class FROM SHIPS GROUP BY class HAVING  COUNT(name)> 2


 
SPIRIT ©   (2004-03-03 06:27) [3]

и что работает ??? прямо из трех баз ?? :))


 
Алексей   (2004-03-04 00:13) [4]

Большое спасибо. Все работает на ура!



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

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
8-1067042786
Almaz
2003-10-25 04:46
2004.04.04
Создание AVI файла


14-1078488148
Rouse_
2004-03-05 15:02
2004.04.04
Такого давно не видел ;)))


1-1078923051
ЕвгенийВ
2004-03-10 15:50
2004.04.04
Знатокам написания компонентов


3-1078348575
yaric
2004-03-04 00:16
2004.04.04
Возможно ли отсортировать данные в TTable


6-1075145941
Magician
2004-01-26 22:39
2004.04.04
Как начать качать файл с определенного места