Sql server 嵌套和SQL查询
我要从SQL server表中得到一个总数,它涉及到子计算,我很难弄清楚如何进行嵌套。如果需要任何帮助,我都会很感激 表(注:截断为有用数据) PrintJob-ID、部门、副本计数 有许多印记(注意它的拷贝数不同) 印记-ID、作业ID、副本计数 有许多页面数据 PageData-ImprintID、索引、ImpressionCount 现在每个部门我都需要 合计(PrintJob.CopyCount*其合计(print.CopyCount*其合计(print的PageData.ImpressionCount))) 因此,对于每个印记,需要将其所有页面数据的印象计数相加,然后乘以印记的拷贝数 然后,可以将每个打印作业的每个压印总数相加,得出每个打印作业的压印副本数,然后再乘以PrintJob.CopyCount,得出每个作业的压印总数 然后可以将其汇总为每个部门的每个打印作业,以给出我的最终结果表,但如何在一个查询中高效地获得结果 样本数据Sql server 嵌套和SQL查询,sql-server,Sql Server,我要从SQL server表中得到一个总数,它涉及到子计算,我很难弄清楚如何进行嵌套。如果需要任何帮助,我都会很感激 表(注:截断为有用数据) PrintJob-ID、部门、副本计数 有许多印记(注意它的拷贝数不同) 印记-ID、作业ID、副本计数 有许多页面数据 PageData-ImprintID、索引、ImpressionCount 现在每个部门我都需要 合计(PrintJob.CopyCount*其合计(print.CopyCount*其合计(print的PageData.Impress
CREATE TABLE PrintJob
(
ID varchar(10),
DEPT varchar(10),
CopyCount int
);
CREATE TABLE Imprint
(
ID varchar(10),
JobId varchar(10),
CopyCount int
);
CREATE TABLE PageData
(
ImprintID varchar(10),
[Index] int,
ImpressionCount int
);
INSERT INTO PrintJob (ID, DEPT, CopyCount)
Values
('J1','D1',2),
('J2','D1',1),
('J3','D2',5),
('J4','D2',4)
;
INSERT INTO Imprint (ID, JobId, CopyCount)
Values
('I1','J1',1),
('I2','J1',2),
('I3','J2',1),
('I4','J3',2),
('I5','J4',2),
('I6','J4',2)
;
INSERT INTO PageData (ImprintID, [Index], ImpressionCount)
Values
('I1',1,1),
('I1',2,3),
('I1',3,1),
('I2',1,1),
('I3',1,1),
('I3',2,2),
('I4',1,1),
('I4',2,1),
('I5',1,1),
('I6',1,5)
;
如果我是对的,你的意思是:
select j.DEPT, sum(j.CopyCount * i.SubCount) TotalCount
from PrintJob j
join (
select i.JobId, sum(i.CopyCount * p.ICountSum) SubCount
from Imprint i
join (
select ImprintID, SUM(ImpressionCount) ICountSum
from PageData
group by ImprintID) p on p.ImprintID= i.ID
group by i.JobId) i on i.JobId = j.ID
group by j.DEPT
有样本数据…请编辑您的问题,以包括相关表格DDL、一些样本数据(最好是DML语句)和所需输出。