Fórum Agrupar por Estoque #451267
08/08/2013
0
Bom dia, pessoal!
Tenho o seguinte comando SQL:
O que eu necessito é incluir nessa expressão o agrupamento por estoque (CD_ESTOQUE), mas não sei como fazer.
Qualquer ajuda é bem-vinda
Desde já, agradeço a atenção de todos!
T++
Tenho o seguinte comando SQL:
SELECT matmed_estoque.cd_estoque, matmed.cd_gr_compra, matmed.cd_gr_estocagem,
matmed.cd_gr_similar, matmed_estoque.cd_material, matmed.ds_material,
matmed.in_consignado, matmed.in_fracionado, matmed.in_frac_producao,
matmed_estoque.qt_estoque, matmed_hospital.vl_custo_medio,
unidade_medida.sigla, matmed.qt_fracionado,
(SELECT unidade_medida.sigla
FROM unidade_medida
WHERE unidade_medida.cd_unidade_medida =
matmed.uni_cd_unidade_medida)
AS unidfrac,
matmed_estoque.id_abc, matmed_estoque.id_abc2,
matmed_estoque.qt_consumo_dia, estoque.ds_estoque,
gr_compra.ds_gr_compra, gr_estocagem.ds_gr_estocagem,
(SELECT ds_gr_similar
FROM gr_similar
WHERE cd_gr_similar = matmed.cd_gr_similar) AS ds_gr_similar,
hospital.sc_hospital,
(SELECT sc_fornecedor
FROM fornecedor
WHERE fornecedor.cd_fornecedor =
matmed_estoque.cd_fornecedor)
AS ult_fornecedor,
matmed.in_antibiotico, matmed_hospital.vl_custo_medio,
matmed_hospital.vl_custo_aquisicao
FROM estoque,
gr_compra,
gr_estocagem,
matmed,
matmed_hospital,
matmed_estoque,
unidade_medida,
hospital
WHERE ( (matmed_estoque.qt_estoque > 0 AND :ps_in_saldo_zero = 'N')
OR (matmed_estoque.qt_estoque = 0 AND :ps_in_saldo_zero = 'S')
OR (:ps_in_saldo_zero = 'T')
)
AND (matmed_hospital.cd_hospital = :pl_cd_hospital)
AND (matmed_hospital.cd_material = matmed.cd_material)
AND (matmed_estoque.cd_hospital = :pl_cd_hospital)
AND (matmed_estoque.in_ativo = 'S')
AND (matmed_estoque.cd_material = matmed.cd_material)
AND (matmed_estoque.cd_hospital = estoque.cd_hospital)
AND (matmed_estoque.cd_estoque = estoque.cd_estoque)
AND (matmed_estoque.cd_hospital = hospital.cd_hospital)
AND (matmed_estoque.cd_material = matmed.cd_material)
AND (matmed_estoque.cd_hospital = :pl_cd_hospital)
AND (matmed.cd_gr_compra = gr_compra.cd_gr_compra)
AND (matmed.cd_gr_estocagem = gr_estocagem.cd_gr_estocagem)
AND (matmed.cd_unidade_medida = unidade_medida.cd_unidade_medida)
AND (matmed_hospital.in_ativo = :ps_in_ativo OR :ps_in_ativo = 'T')O que eu necessito é incluir nessa expressão o agrupamento por estoque (CD_ESTOQUE), mas não sei como fazer.
Qualquer ajuda é bem-vinda
Desde já, agradeço a atenção de todos!
T++
Marco Silva
Curtir tópico
+ 0
Responder
Posts
22/11/2013
Eliézio Mesquita
Olá Marco Antônio tudo bem?
Para você agrupar dados você deve pegar todas as colunas inclusas no select e colocar dentro do group by, as colunas que não devem está no group by são as colunas que tiverem em alguma função de grupo, com SUM,MAX.AVG e etc...
Segue o exemplo do seu código:
Para você agrupar dados você deve pegar todas as colunas inclusas no select e colocar dentro do group by, as colunas que não devem está no group by são as colunas que tiverem em alguma função de grupo, com SUM,MAX.AVG e etc...
Segue o exemplo do seu código:
SELECT matmed_estoque.cd_estoque, matmed.cd_gr_compra, matmed.cd_gr_estocagem,
matmed.cd_gr_similar, matmed_estoque.cd_material, matmed.ds_material,
matmed.in_consignado, matmed.in_fracionado, matmed.in_frac_producao,
matmed_estoque.qt_estoque, matmed_hospital.vl_custo_medio,
unidade_medida.sigla, matmed.qt_fracionado,
(SELECT unidade_medida.sigla
FROM unidade_medida
WHERE unidade_medida.cd_unidade_medida =
matmed.uni_cd_unidade_medida)
AS unidfrac,
matmed_estoque.id_abc, matmed_estoque.id_abc2,
matmed_estoque.qt_consumo_dia, estoque.ds_estoque,
gr_compra.ds_gr_compra, gr_estocagem.ds_gr_estocagem,
(SELECT ds_gr_similar
FROM gr_similar
WHERE cd_gr_similar = matmed.cd_gr_similar) AS ds_gr_similar,
hospital.sc_hospital,
(SELECT sc_fornecedor
FROM fornecedor
WHERE fornecedor.cd_fornecedor =
matmed_estoque.cd_fornecedor)
AS ult_fornecedor,
matmed.in_antibiotico, matmed_hospital.vl_custo_medio,
matmed_hospital.vl_custo_aquisicao
FROM estoque,
gr_compra,
gr_estocagem,
matmed,
matmed_hospital,
matmed_estoque,
unidade_medida,
hospital
WHERE ( (matmed_estoque.qt_estoque > 0 AND :ps_in_saldo_zero = 'N')
OR (matmed_estoque.qt_estoque = 0 AND :ps_in_saldo_zero = 'S')
OR (:ps_in_saldo_zero = 'T')
)
AND (matmed_hospital.cd_hospital = :pl_cd_hospital)
AND (matmed_hospital.cd_material = matmed.cd_material)
AND (matmed_estoque.cd_hospital = :pl_cd_hospital)
AND (matmed_estoque.in_ativo = 'S')
AND (matmed_estoque.cd_material = matmed.cd_material)
AND (matmed_estoque.cd_hospital = estoque.cd_hospital)
AND (matmed_estoque.cd_estoque = estoque.cd_estoque)
AND (matmed_estoque.cd_hospital = hospital.cd_hospital)
AND (matmed_estoque.cd_material = matmed.cd_material)
AND (matmed_estoque.cd_hospital = :pl_cd_hospital)
AND (matmed.cd_gr_compra = gr_compra.cd_gr_compra)
AND (matmed.cd_gr_estocagem = gr_estocagem.cd_gr_estocagem)
AND (matmed.cd_unidade_medida = unidade_medida.cd_unidade_medida)
AND (matmed_hospital.in_ativo = :ps_in_ativo OR :ps_in_ativo = 'T')
GROUP BY matmed_estoque.cd_estoque, matmed.cd_gr_compra, matmed.cd_gr_estocagem,
matmed.cd_gr_similar, matmed_estoque.cd_material, matmed.ds_material,
matmed.in_consignado, matmed.in_fracionado, matmed.in_frac_producao,
matmed_estoque.qt_estoque, matmed_hospital.vl_custo_medio,
unidade_medida.sigla, matmed.qt_fracionado,
(SELECT unidade_medida.sigla
FROM unidade_medida
WHERE unidade_medida.cd_unidade_medida =
matmed.uni_cd_unidade_medida)
AS unidfrac,
matmed_estoque.id_abc, matmed_estoque.id_abc2,
matmed_estoque.qt_consumo_dia, estoque.ds_estoque,
gr_compra.ds_gr_compra, gr_estocagem.ds_gr_estocagem,
(SELECT ds_gr_similar
FROM gr_similar
WHERE cd_gr_similar = matmed.cd_gr_similar) AS ds_gr_similar,
hospital.sc_hospital,
(SELECT sc_fornecedor
FROM fornecedor
WHERE fornecedor.cd_fornecedor =
matmed_estoque.cd_fornecedor)
AS ult_fornecedor,
matmed.in_antibiotico, matmed_hospital.vl_custo_medio,
matmed_hospital.vl_custo_aquisicao
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)