爲了更好的幫助您需要提供的表結構和樣本數據在這樣一個容易的使用格式爲:
-- Table structure and sample data
DECLARE @contracts TABLE (Id int identity, contract_number varchar(100), Company_Id int);
DECLARE @job TABLE (Id int identity, Job_description varchar(100));
DECLARE @Company TABLE (Company_Id int identity, parent_company varchar(100));
DECLARE @Sub_Company TABLE (Company_Id int, Parent_Company_Id int);
INSERT @contracts(contract_number, Company_Id)
VALUES ('001122',1), ('009922',1), ('123ABC',2), ('XXXYYYZZZ',2);
INSERT @job(Job_description)
VALUES ('Fun stuff'), ('Hard Stuff'), ('Dumb stuff');
INSERT @Company(parent_company)
VALUES ('A Co'), ('B Co');
INSERT @Sub_Company(Parent_Company_Id, Company_Id)
VALUES (1,10), (1,11), (1, 20), (1, 30), (2, 400), (2, 500);
-- Select statements to review the data
SELECT * FROM @contracts;
SELECT * FROM @Company;
SELECT * FROM @job;
SELECT * FROM @Sub_Company;
你可以複製/粘貼上面的代碼並在本地運行。
我試圖創建一個顯示的 「子公司」,對於每個 「職位描述」每個「母公司」下工作的重複計數的查詢。
你GROUP BY語句將是這樣的:
group by jd.Job_description, c.Parent_Company, cs.contract_number
您的解決方案看起來東西這樣
-- Table structure and sample data
DECLARE @contracts TABLE (Id int identity, contract_number varchar(100), Company_Id int);
DECLARE @job TABLE (Id int identity, Job_description varchar(100));
DECLARE @Company TABLE (Company_Id int identity, parent_company varchar(100));
DECLARE @Sub_Company TABLE (Company_Id int, Parent_Company_Id int);
INSERT @contracts(contract_number, Company_Id)
VALUES ('001122',1), ('009922',1), ('123ABC',2), ('XXXYYYZZZ',2);
INSERT @job(Job_description)
VALUES ('Fun stuff'), ('Hard Stuff'), ('Dumb stuff');
INSERT @Company(parent_company)
VALUES ('A Co'), ('B Co');
INSERT @Sub_Company(Parent_Company_Id, Company_Id)
VALUES (1,10), (1,11), (1, 20), (1, 30), (2, 400), (2, 500);
-- solution
select jd.Job_description, c.Parent_Company, cs.contract_number, total = count(DISTINCT Sub.Company_Id)
from @contracts cs
join @job jd on jd.ID = cs.ID
join @Company c on cs.Company_ID = c.Company_ID
join @Sub_Company sub on c.Company_ID = sub.Parent_Company_Id
group by jd.Job_description, c.Parent_Company, cs.contract_number ;
更新我提供給包括正確的列中的樣本數據和更新示例數據看起來更加準確。接下來發佈一個屏幕截圖或者顯示你想要的結果。這樣做,你會很快得到很好的幫助。
幫助我們爲您提供幫助 - 請分享您的表格結構,一些樣品數據,您獲得的樣品結果以及您試圖獲得的結果。 – Mureinik
我希望這張圖片有所幫助。 – caa35
@Mureinik此圖像幫助嗎? – caa35