多连接查询中的SQL求和
我正在努力为这个设置。这是第一个表的设置。第一个查询只需应用于超过某个日期(例如2012-06-01)的项目多连接查询中的SQL求和,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在努力为这个设置。这是第一个表的设置。第一个查询只需应用于超过某个日期(例如2012-06-01)的项目 | Table: TIMELOG | | INQUIRY_ID | … | LOGMINS | … | OPERID | … | EDATE | | 2 | | 45 | | bob | | 2012-05-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 |
然后,查询需要使用INQUIRY\u ID进入另一个表,并获得一些附加字段(下一个表中每个INQUIRY\u 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字段进行合计,记住有时每个查询ID会有多个LOGMINS作为结束
| INQUIRY_ID | … | TOTAL | … | CATNAME | … | PRODDESC |
| 2 | | 45 | | Server | | SBS 2003 |
| 5 | | 30 | | Workstation | | Windows 7 |
| 6 | | 10 | | Phones | | iPhone |
我为大量的细节感到抱歉,我尝试过的查询刚刚爆炸出来,当我进入嵌套查询和多个连接时,我的SQL技能就崩溃了。任何帮助都将不胜感激
我正在运行的查询:
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
将数据所在的表连接在一起,然后对保持不变的数据进行分组,并对要添加的字段进行汇总
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
这是可行的,但它会在相同的结果中收回多个查询ID,我需要的是将具有相同查询ID的所有行相加,然后将它们作为每个查询ID的一个总数相加。这可能吗?谢谢您的帮助help@Trinitrotoluene您是否添加了其他字段,或者是否存在其他差异行之间?嗨,对不起,这是我的错,我应该说得更具体一些。如果你是这么问的话,我之前列出的一些表中有很多列,其中包含更多数据,我不需要这些列。上面详述的查询应该为查询/catname/proddesc的每个组合返回一行。你能给出一个e吗不属于这种情况的示例?我已经用正在运行的查询更新了原始问题,这返回例如:45558 26备份配置2013-08-02 13:41:06.000 45558 3备份配置2013-08-02 13:41:17.000那些是两行作为示例,很抱歉格式化