Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT
- id,
- vacina,
- qtde_entradas,
- qtde_saidas AS saidas,
- qtde_imunos AS imunizacaos,
- COALESCE(qtde_saidas, 0) + COALESCE(qtde_imunos, 0) AS qtde_saidas,
- COALESCE(qtde_entradas, 0) - (COALESCE(qtde_saidas, 0) + COALESCE(qtde_imunos, 0)) AS qtde_total,
- valor_medio AS valor_unitario,
- COALESCE(qtde_imunos, 0) * COALESCE(valor_medio, 0) AS total
- FROM (
- SELECT
- Vacina.id,
- Vacina.nome || ' - ' || Laboratorio.nome AS vacina,
- SUM((SELECT SUM(Entrada.quantidade) FROM (
- SELECT
- Itensentradasvacina.lotesvacina_id,
- SUM(Itensentradasvacina.quantidade) AS quantidade,
- Entradasvacina.unidade_id,
- Entradasvacina.data_entrada
- FROM public.itensentradasvacinas Itensentradasvacina
- INNER JOIN public.entradasvacinas Entradasvacina ON Itensentradasvacina.entradasvacina_id = Entradasvacina.id
- WHERE Entradasvacina.STATUS = TRUE
- GROUP BY Itensentradasvacina.lotesvacina_id, Entradasvacina.unidade_id, Entradasvacina.data_entrada
- ) AS Entrada WHERE Entrada.lotesvacina_id = Lotesvacina.id)) AS qtde_entradas,
- SUM((SELECT SUM(Saida.quantidade) FROM (
- SELECT
- Itenssaidasvacina.lotesvacina_id,
- SUM(Itenssaidasvacina.quantidade) AS quantidade,
- Saidasvacina.unidade_id,
- Saidasvacina.DATA
- FROM public.itenssaidasvacinas Itenssaidasvacina
- LEFT JOIN public.saidasvacinas Saidasvacina ON Itenssaidasvacina.saidasvacina_id = Saidasvacina.id
- WHERE Saidasvacina.STATUS = TRUE
- GROUP BY Itenssaidasvacina.lotesvacina_id, Saidasvacina.unidade_id, Saidasvacina.DATA
- ) AS Saida WHERE Saida.lotesvacina_id = Lotesvacina.id)) AS qtde_saidas,
- SUM((SELECT SUM(Imuno.quantidade) FROM (
- SELECT
- Dosesimunizacao.lotesvacina_id,
- Dosesimunizacao.valor_unitario,
- COUNT(Dosesimunizacao.id) AS quantidade,
- Imunizacao.unidade_id,
- Imunizacao.DATA
- FROM public.doses_imunizacaos Dosesimunizacao
- JOIN public.imunizacaos Imunizacao ON Dosesimunizacao.imunizacao_id = Imunizacao.id
- JOIN public.lotesvacinas Lotesvacina ON Dosesimunizacao.lotesvacina_id = Lotesvacina.id
- JOIN public.vacinas Vacina ON Lotesvacina.vacina_id = Vacina.id
- JOIN public.formaapresentacaos Formaapresentacao ON Vacina.formaapresentacao_id = Formaapresentacao.id
- WHERE Formaapresentacao.tipo = '1'::bpchar AND Imunizacao.STATUS = TRUE
- GROUP BY Dosesimunizacao.lotesvacina_id, Imunizacao.unidade_id, Imunizacao.DATA, Dosesimunizacao.valor_unitario
- ) AS Imuno WHERE Imuno.lotesvacina_id = Lotesvacina.id)) AS qtde_imunos,
- SUM((SELECT AVG(Imuno.valor_unitario) FROM (
- SELECT
- Dosesimunizacao.lotesvacina_id,
- Dosesimunizacao.valor_unitario,
- COUNT(Dosesimunizacao.id) AS quantidade,
- Imunizacao.unidade_id,
- Imunizacao.DATA
- FROM public.doses_imunizacaos Dosesimunizacao
- JOIN public.imunizacaos Imunizacao ON Dosesimunizacao.imunizacao_id = Imunizacao.id
- JOIN public.lotesvacinas Lotesvacina ON Dosesimunizacao.lotesvacina_id = Lotesvacina.id
- JOIN public.vacinas Vacina ON Lotesvacina.vacina_id = Vacina.id
- JOIN public.formaapresentacaos Formaapresentacao ON Vacina.formaapresentacao_id = Formaapresentacao.id
- WHERE Formaapresentacao.tipo = '1'::bpchar AND Imunizacao.STATUS = TRUE
- GROUP BY Dosesimunizacao.lotesvacina_id, Imunizacao.unidade_id, Imunizacao.DATA, Dosesimunizacao.valor_unitario
- ) AS Imuno WHERE Imuno.lotesvacina_id = Lotesvacina.id)) AS valor_medio
- FROM public.lotesvacinas AS Lotesvacina
- INNER JOIN public.vacinas AS Vacina ON Lotesvacina.vacina_id = Vacina.id
- LEFT JOIN public.laboratorios AS Laboratorio ON Vacina.laboratorio_id = Laboratorio.id
- GROUP BY Vacina.id, Vacina.nome, Laboratorio.nome
- ) sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement