Für eine bessere Hilfe benötigen Sie Tabellenstrukturen und Beispieldaten in ein leicht konsumierbaren Format so bieten:
-- 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;
Sie können einfach/einfügen Code des oben kopieren und lokal ausgeführt.
Ich versuche, eine Abfrage zu erstellen, die die Anzahl der eindeutigen Werte „Tochtergesellschaften“ zeigt, die für jede „Stellenbeschreibung“ unter jeder „Muttergesellschaft“ arbeiten.
Ihre GROUP BY-Anweisung wird wie folgt aussehen:
group by jd.Job_description, c.Parent_Company, cs.contract_number
Ihre Lösung etwas wie dieses
-- 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 ;
Aktualisieren, um die Beispieldaten aussehen werde ich die richtigen Spalten enthalten bereitgestellt und Aktualisieren Sie die Beispieldaten, um genauer zu sein. Nächster Beitrag ein Screenshot oder etwas, das zeigt, was Sie wollen. Tun Sie das und Sie werden schnell gute Hilfe bekommen.
Helfen Sie uns, Ihnen zu helfen - Bitte teilen Sie Ihre Tabellenstruktur, einige Beispieldaten, das Ergebnis, das Sie für dieses Beispiel erhalten, und das Ergebnis, das Sie dafür erhalten möchten. – Mureinik
Ich hoffe, dieses Bild hilft. – caa35
@Mureinik wird dieses Bild helfen? – caa35