SQL - Agrupar varios Count

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 47 puestos en SQL (en relación al último mes)
Gráfica de SQL

Agrupar varios Count

Publicado por Sebastian (2 intervenciones) el 01/05/2020 15:54:18
Buenos días
Quisiera unir en una sola consulta dos Count que los tengo por separados.

En la primera consulta, mirando datos en vivos, obtengo la cantidad de los datos que están llegando nulos.
Esta es la sentencia.


1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT IOServer.ComputerName as [Computer Name], IOServer.ApplicationName as [Application Name], Topic.Name as [Access Name], COUNT(*) as Nulos
FROM AnalogTag, EngineeringUnit, Tag, v_Live, Topic, IOServer, IODriver
WHERE
Tag.TagName not like '%sys%'
AND v_Live.Value is Null
AND Tag.TagName = AnalogTag.TagName
AND tag.tagname = v_live.TagName
AND AnalogTag.EUKey = EngineeringUnit.EUKey
AND Topic.TopicKey = Tag.TopicKey
AND IOServer.IOServerKey = Topic.IOServerKey
AND IOServer.IODriverKey=IODriver.IODriverKey
GROUP BY Topic.Name,IOServer.ComputerName,IOServer.ApplicationName
ORDER BY IOServer.ComputerName, Topic.Name


En la segunda consulta obtengo la cuenta de la cantidad total de todos los datos en vivos.

1
2
3
4
5
6
7
8
9
10
11
12
SELECT IOServer.ComputerName, IOServer.ApplicationName, Topic.Name as AccessName, COUNT(*) as Total
FROM AnalogTag, EngineeringUnit, Tag, v_Live, Topic, IOServer, IODriver
WHERE
Tag.TagName not like '%sys%'
AND Tag.TagName = AnalogTag.TagName
AND tag.tagname = v_live.TagName
AND AnalogTag.EUKey = EngineeringUnit.EUKey
AND Topic.TopicKey = Tag.TopicKey
AND IOServer.IOServerKey = Topic.IOServerKey
AND IOServer.IODriverKey=IODriver.IODriverKey
GROUP BY Topic.Name,IOServer.ComputerName,IOServer.ApplicationName
ORDER BY IOServer.ComputerName, Topic.Name


Lo que necesito haces es mostrar los valores Nulos y al lado su total.
Opción 01
Mostrar solo si tienen valores nulos.

ComputerName | ApplicationName | Access Name | Nulos | Totales
Computer02 | aplicación01 | Acces_100 | 2 | 25

Opción 02
Mostrar totales y el número de nulos.

ComputerName | ApplicationName | Access Name | Nulos | Totales
Computer02 | Aplicación01 | Acces_100 | 2 | 25
Computer1 | Applicacion03 | Acces_205 | 0 | 25

Desde ya agradezco su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Agrupar varios Count

Publicado por Isaias (1921 intervenciones) el 01/05/2020 18:51:39
Deberias hacer uso del JOIN para unir tus tablas, si ambas consultas te dan el mismo numero de consultas, entonces usa UNION

selec......
UNION
selec.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Vega
Val: 187
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Agrupar varios Count

Publicado por Vega (73 intervenciones) el 07/05/2020 20:45:20
yo diría mejor UNION ALL por si el número es el mismo, ¿no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar