нужно читать данные из базы данных оракула со многими условиями - PullRequest
0 голосов
/ 18 марта 2010

у меня есть 3 таблицы A, B и C.

  • таблица A имеет столбец employee_name, id
  • таблица B является основной таблицей и имеет столбцы id, версия os.
  • таблица c имеет идентификатор столбцов, идентификатор пакета и p_version.

Я хочу запросить счетчик employee_name, в котором идентификаторы таблицы a и c сопоставлены с идентификатором таблицы b (которая является основной таблицей).

Я также должен получить имена сотрудников, сгруппированные по имеющейся у них версии os, а также p_version.

Я пытался,

select count(employee_name),os.version,p_version where a.id=b.id and b.id=c.id;

Я хочу, чтобы количество имен сотрудников было сгруппировано по os.version и p_version.

Ответы [ 2 ]

0 голосов
/ 18 марта 2010

(Вопрос мне пока неясен, но я попытаюсь:)

Если вы пробовали

select count(employee_name),os.version,p_version where a.id=b.id and b.id=c.id;

тогда я предполагаю, что это потому, что он правильно обращается к схеме. Поэтому я бы попробовал это вместо:

select "os version", p_version, count(employee_name) 
from a,b,c 
where a.id=b.id and b.id=c.id
group by "os version", p_version;

Один неясный вопрос - твой вопрос "os version". Вы подарили ему пробел, поэтому я предполагаю, что в его названии есть пробел. Обычно этого не происходит, но если это правда, то вам придется каким-то образом указывать имя столбца. Мое решение, вероятно, решит проблему в oracle. Если на самом деле есть подчеркивание или что-то еще, игнорируйте кавычки.

0 голосов
/ 18 марта 2010

Я не слишком уверен, что понимаю ваши требования ... следующее слепое предположение.

Я не слишком уверен, как таблица c должна быть связана с таблицей b, кстати ... каким-то образом схема не имеет для меня большого смысла!

select  b.os
     , c.package_version
     , count(a.employee_name)
from B
  join A  on (b.id=a.id)
  join C  on (b.id=c.id)
group by b.os,c.package_version
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...