2013-08-02 2 views
0

Я боюсь за настройку для этого. Это настройка первой таблицы. Первый запрос должен применяться только к элементам за определенную дату, например, 2012-06-01.Сумма SQL в запросе множественного соединения

|     Table: TIMELOG     | 
| INQUIRY_ID | … |  LOGMINS | … | OPERID | … | EDATE | 
|  2  | |  45  | | bob  | | 2012-05-01 | 
|  5  | |  3   | | richard | | 2012-06-02 | 
|  5  | |  12  | | bob  | | 2012-07-01 | 
|  5  | |  15  | | paul  | | 2012-07-01 | 
|  6  | |  10  | | paul  | | 2012-07-01 | 

Запрос затем необходимо перейти в другую таблицу с помощью INQUIRY_ID и получить некоторые дополнительные поля (есть только одна запись в INQUIRY_ID в следующем таблице:

|     Table: INQUIRY     | 
| INQUIRY_ID | … | CATEGORY_ID | … | PROD_ID | 
|  2  | |  45  | | 6  | 
|  3  | |  3   | | 50  | 
|  4  | |  12  | | 3  | 
|  5  | |  15  | | 67  | 
|  6  | |  10  | | 2  | 

После того как мы CATEGORY_ID и PROD_ID «дружественные имена» для тех, кто находятся в их собственных отдельных столиках

|   Table: CATEGORY   | 
| CATEGORY_ID | … |  CATNAME  | 
|  45  | |  Server  | 
|  3  | |  Workstation | 
|  12  | |  Phones  | 
|  15  | |  Backup  | 
|  10  | |  Network  | 

|   Table: PROD    | 
| PROD_ID  | … |  PRODDESC  | 
|  6  | |  SBS 2003  | 
|  50  | |  Windows 7  | 
|  3  | |  iPhone  | 
|  67  | |  Buexec  | 
|  2  | |  SwitchF  | 

я тогда хотел все поле LOGMINS, имея в виде, иногда это будет иметь несколько LO GMINS в INQUIRY_ID Чтобы закончить, как

| INQUIRY_ID | … |  TOTAL  | … | CATNAME   | … | PRODDESC | 
|  2  | |  45  | |  Server  | | SBS 2003 | 
|  5  | |  30  | |  Workstation | | Windows 7 | 
|  6  | |  10  | |  Phones  | | iPhone  | 

Я извиняюсь за экстраординарное количество деталей, запросы я пытался просто разбомбить, мое мастерство в SQL взрывает, когда я получаю на вложенные запросы и несколько соединений. Любая помощь будет широко оценена.

Query Я бегу Сейчас:

select 
timelog.INQUIRY_ID, 
SUM (logmins) AS Total, 
catname, 
proddesc, 
EDATE 
from 
timelog 
inner join inquiry on timelog.inquiry_id=inquiry.inquiry_id 
inner join category on inquiry.category_id = category.category_id 
inner join prod on inquiry.prod_id = prod.prod_id 
where EDATE > '2013-07-01' 
group by 
timelog.INQUIRY_ID, 
catname, 
proddesc, 
edate 
order by timelog.INQUIRY_ID desc 

ответ

1

Присоединяйтесь таблицы ваши данные будут вместе, то group на данные, которые вы держите постоянно, и sum поля, которые вы хотите добавить

select 
    inquiry.inquiry_id, 
    SUM(logmins), 
    catname, 
    proddesc 
from 
    timelog 
    inner join inquiry on timelog.inquiry_id=inquiry.inquiry_id 
    inner join category on inquiry.category_id = category.category_id 
    inner join prod on inquiry.prod_id = prod.prod_id 
group by 
    inquiry.inquiry_id, 
    catname, 
    proddesc 
+0

Это работает, но он оттягивает несколько INQUIRY_ID в результатах, которые являются одинаковыми, и мне нужно, чтобы это закончилось, это суммирование всех строк, которые имеют SAME_ID_ID_ID, и просто добавление их как один общий запрос_ID. Это возможно? Спасибо за вашу помощь – Trinitrotoluene

+0

@Trinitrotoluene Вы добавили некоторые другие поля или есть другие различия между строками? – podiluska

+0

Привет, извините, это моя вина, я должен был быть более конкретным. Некоторые из таблиц, которые я изложил ранее, имеют гораздо больше столбцов с большим количеством данных, которые мне не нужны, если это то, о чем вы спрашиваете? – Trinitrotoluene

Смежные вопросы