简体   繁体   English

多连接查询中的SQL总和

[英]SQL Sum in Multiple join query

I'm struggling for the setup for this. 我正在为此做准备。 This is the setup of the first table. 这是第一个表的设置。 The first query needs to only apply to items past a certain date, say 2012-06-01. 第一个查询仅适用于特定日期(例如2012-06-01)之后的项目。

|                  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  |

The query then needs to go into a different table using INQUIRY_ID and get some additional fields (there is only one entry per INQUIRY_ID in this next table: 然后,查询需要使用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        |

Once we have the CATEGORY_ID and PROD_ID the "friendly names" for those are in their own seperate tables 一旦有了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       |   

I'd then like to total the LOGMINS field, bearing in mind sometimes it will have multiple LOGMINS per INQUIRY_ID To finish up as 然后,我想总计LOGMINS字段,请记住,有时每个INQUIRY_ID会有多个LOGMINS

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

I'm sorry for the extraordinary amount of detail, the queries I have tried just bomb out, my skill in SQL blows up when I get into nested queries and multiple joins. 对于这么多的细节,我感到抱歉,我尝试过的查询只是炸开了,当我进入嵌套查询和多个联接时,我在SQL方面的技能崩溃了。 Any help would be massively appreciated. 任何帮助将不胜感激。

Query I am running now: 查询我现在正在运行:

 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

Join the tables your data is in together, then group on the data that you are keeping constant, and sum the fields you want to add 将数据所在的表连接在一起,然后对保持不变的数据进行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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM