Puede usar un Union.
Esto devolverá los resultados de las consultas en filas separadas.
Primero debe asegurarse de que ambas consultas devuelvan columnas idénticas.
entonces usted puede hacer:
SELECT tableA.Id, tableA.Name, [tableB].Username AS Owner, [tableB].ImageUrl, [tableB].CompanyImageUrl, COUNT(tableD.UserId) AS Number
FROM tableD
RIGHT OUTER JOIN [tableB]
INNER JOIN tableA ON [tableB].Id = tableA.Owner ON tableD.tableAId = tableA.Id
GROUP BY tableA.Name, [tableB].Username, [tableB].ImageUrl, [tableB].CompanyImageUrl
UNION
SELECT tableA.Id, tableA.Name, '' AS Owner, '' AS ImageUrl, '' AS CompanyImageUrl, COUNT([tableC].Id) AS Number
FROM
[tableC]
RIGHT OUTER JOIN tableA ON [tableC].tableAId = tableA.Id GROUP BY tableA.Id, tableA.Name
Como se ha mencionado, las dos consultas devuelven muy diferentes datos. Probablemente solo desee hacer esto si ambas consultas devuelven datos que podrían considerarse similares.
SO
Se puede utilizar un Ingreso
Si hay algunos datos que se comparte entre las dos consultas. Esto hará que los resultados de las dos consultas en una sola fila unida por el id, que es probablemente más de lo que quieren hacer aquí ...
que podría hacer:
SELECT tableA.Id, tableA.Name, [tableB].Username AS Owner, [tableB].ImageUrl, [tableB].CompanyImageUrl, COUNT(tableD.UserId) AS NumberOfUsers, query2.NumberOfPlans
FROM tableD
RIGHT OUTER JOIN [tableB]
INNER JOIN tableA ON [tableB].Id = tableA.Owner ON tableD.tableAId = tableA.Id
INNER JOIN
(SELECT tableA.Id, COUNT([tableC].Id) AS NumberOfPlans
FROM [tableC]
RIGHT OUTER JOIN tableA ON [tableC].tableAId = tableA.Id
GROUP BY tableA.Id, tableA.Name) AS query2
ON query2.Id = tableA.Id
GROUP BY tableA.Name, [tableB].Username, [tableB].ImageUrl, [tableB].CompanyImageUrl
... ¿por qué quieres combinarlos? –
Desea hacer algo con dos consultas, pero es imposible adivinar qué; 'combinar' es muy vago. – Smandoli
Su primera consulta debería dar un error: 'Column 'tableA.Id' no es válida en la lista de selección porque no está contenida ni en una función de agregado ni en la cláusula GROUP BY. –