Subconsulta para sumar dos columnas en mysql

necesito que alguien me pueda ayudar… No tiene relación la pregunta escrita, o bien si, les comentaré: Estoy trabajando con una tabla llamada “pasajes_db”, del cual contiene las fecha de viajes y el precio tanto de ida, como de vuelta.

+--+-----+----------+----------------+-----------+---------------+ |id|   fecha_compra |estado_solicitud|tarifa_ida | tarifa_vuelta | +--+-----+----------+----------------+-----------+---------------+ |1 |   2019-07-10   |    EMITIDO     | 140       |  130          | +--+-----+----------+----------------+-----------+---------------+ |2 |   2019-08-21   |    EMITIDO     | 155       |  140          | +--+-----+----------+----------------+-----------+---------------+ |3 |   2019-09-01   |    PERDIDO     | 180       |  160          | +--+-----+----------+----------------+-----------+---------------+ |4 |   2019-09-01   |    EMITIDO     | 90        |  110          | +--+-----+----------+----------------+-----------+---------------+ |2 |   2019-09-08   |    EMITIDO     | 130       |  120          | +--+-----+----------+----------------+-----------+---------------+ |3 |   2019-09-13   |    PERDIDO     | 130       |  130          | +--+-----+----------+----------------+-----------+---------------+ 

Tengo ingresado los estados de aquellos pasajes, significa que todos son comprados, sin embargo los perdidos se toman como costo ya que cliente nunca usó su pasaje.

Lo que necesito realmente de todo esto es generar una consulta que realice suma de la tarifa ida y tarifa vuelta al año, y además que me visualice los pasajes emitidos y los perdidos (emitidos – perdidos), de momento tengo esto, pero sólo me entrega los emitidos.

SELECT MONTH(fecha_compra) Mes, SUM(tarifa_ida+tarifa_vuelta) as total_emitido  FROM pasajes_db  WHERE estado_solicitud='EMITIDO'  GROUP BY Mes 

RESULTADO

+-----+----------+----------------+ |   Mes          |  total_emitido | +-----+----------+----------------+ |   7            |     270        |  +-----+----------+----------------+ |   8            |     295        |  +-----+----------+----------------+ |   9            |     450        |  +-----+----------+----------------+ 

Sé que estoy usando un WHERE que sólo está condicionando los “emitidos”, pero no logro traer la solicitud “perdido”, tengo que crear ¿ subconsulta ?

¿Como evitar registros que sean iguales a 0 en una subconsulta?

Buenas tardes Tengo el siguiente Querry donde me muestra las áreas y con una sub consulta cuenta los activos fijos de estas

SELECT Nombre AS datos, (     SELECT         COUNT(IdActivoFijo)     FROM         c_activofijotemporal AS ac     WHERE         IdArea = a.IdArea ) AS series FROM c_area AS a WHERE a.IdPeriodo = 40 ORDER BY a.Nombre; 

me regresa los siguientes valores:

Académicos      0 Administración      92 Amigos D. E     0 Amigos P        0 Amigos S.       0 Archivo 1 Arquitectura        0 Comunicación        0 Comunicación Social     0 Contabilidad        0 Coordinación Operativa      0 Custodios       139 

mi pregunta es como puedo hacer que no muestre los registros que sean igual a 0

Error SQL: La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, = o

Este es mi procedimiento almacenado:

alter PROCEDURE hola as declare @setHoraInicioCita datetime declare @setHoraFinCita datetime declare @horaincio datetime declare @horafin datetime declare @tmpromedio datetime declare @idespecialidad int set @horaincio = (select HoraInicio = CONVERT (time, HoraInicio,120) from ProgramacionMedica where Fecha = '2019-02-26T00:00:00.000') set @horafin = (select HoraFin = CONVERT (time, HoraFin,120) from ProgramacionMedica where Fecha = '2019-02-26T00:00:00.000') set @tmpromedio = (select TiempoPromedioAtencion = convert(char(8), dateadd(minute, TiempoPromedioAtencion, ''), 114) from ProgramacionMedica where Fecha = '2019-02-26T00:00:00.000') set @idespecialidad = (select IdEspecialidad from ProgramacionMedica where Fecha = '2019-02-26T00:00:00.000') begin truncate table cupos end while @horaincio < @horafin begin set @setHoraInicioCita = @horaincio; set @horaincio = @horaincio + @tmpromedio; set @setHoraFinCita = @horaincio;  insert into cupos (horainicio,horafin,idespecialidad) values (@setHoraInicioCita,@setHoraFinCita,@idespecialidad)  end  select * from cupos 

y aquí muestra los cupones que hay en cada fecha de cada programación medica.

cuando hay mas de 1 programaciones en la misma fecha me sale el siguiente error:

La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión. 

Pero si solo tiene una programación, esto funciona normalmente. Necesito urgentemente una ayuda

Adjuntar subconsulta con varios campos a una consulta principal

Necesito adjuntar la query que un usuario lanza a un informe de estadísticas sobre consultas de larga duración en Amazon Redshift (basado en PostgreSQL). Estas las obtengo de la siguiente manera:

select query as idquery,wlm_start_time as inicio,queue_time as  tiempo_en_cola_microseg,exec_time as tiempo_ejecucion_microseg,  (tiempo_en_cola_microseg+tiempo_ejecucion_microseg) as tiempo_total_microseg  ,state as estado, mod(cast(floor(tiempo_total_microseg/3600000000) as integer),24) || ':' ||  mod(cast(floor(tiempo_total_microseg/60000000) as integer),60) || ':' ||  mod(cast(floor(tiempo_total_microseg/1000000) as integer),60)  as  duracion_hhmmss, case tiempo_total_microseg when tiempo_total_microseg>28800000000 then 'CRITICAL' else 'WARNING' end as situacion from stv_wlm_query_state where tiempo_total_microseg >= 14400000000 order by duracion_hhmmss; 

Ahora, necesito coger el campo query y buscar todo el texto (el select en si) en otra tabla:

select * from stl_querytext where query = 1319600; 

El problema es que esta última consulta arroja el siguiente resultado:

introducir la descripción de la imagen aquí

Es decir, la sentencia la divide en varias secuencias. Yo necesito que toda la consulta aparezca en un único campo, para adjuntarlo a la consulta de arriba, ya que ese resultado se exporta en .CSV

¿De qué manera podría hacerlo?

Pasar a ORM un una subconsulta en SQL Rails 5

estoy tratando de pasar una subconsulta que me tomo 5 minutos o menos en sql a ORM (Llevo mas de 3) y este no me arroja los datos esperados. Por favor si me pueden indicar.

Le explico tengo una tabla Adopcion que tiene una foranea en Mascota, es decir una mascota tiene muchas adopciones y una adpcion es de una mascota.

La consulta en sql no me costo mucho realizar, mas sin embargo como mencioné la consola de rails no me esta arrojando los mismo datos que la BD, supongo yo que es por la mala estructuración de la Consulta que estoy tratando de realizar.

Le dejo la Consulta SQL.

select A.users_id, P.id from adoptions A, pets P where A.id = P.adoptions_id; 

Graciasss.

SubConsulta en Rails

Hola a todos quiero realizar el siguiente query en Rails pero solo me esta dando los valores nulos de una tabla sin observar la otra.

SELECT P.id FROM pets P WHERE P.id NOT IN (SELECT pet_id FROM sponsors); 

Lo esta tratando de realizar de la siguiente forma pero no funciona.

Pet.where.not(id: Sponsor) 

que deuelve

SELECT  "pets".* FROM "pets" WHERE "pets"."id" IS NOT NULL LIMIT $  1