Array
(
)

Mostrar informação tudo na mesma linha

Neto
   - 23 dez 2015

Olá bom dia, tenho essa query abaixo que me retorna dois registro um em cada linha, gostaria que o resultado fosse em uma linha só será que existe essa possibilidade?
SELECT
f.cod_empresa
, f.cod_item
, f.cod_item_compon
, f.den_item_compon
, f.cod_unid_med_compon
,sum(f.qtd_necessaria_sum) AS calc_tb
FROM nv_it_man_massa f
WHERE f.cod_empresa = '02'
AND f.cod_unid_med_compon = 'M'
AND (f.cod_item = '1570' OR (f.den_item_compon <> 'EP 6108-C') )
AND f.ies_tip_item = 'F'
AND f.ies_tip_item_compon = 'P'
AND f.cod_item = '37866'
GROUP BY
f.cod_empresa
, f.cod_item
, f.cod_item_compon
, f.den_item_compon
, f.cod_unid_med_compon
Clique na imagem para abrir em uma nova janela

Tércio Costa
   - 23 dez 2015

Qual banco está utilizando?

E poderia nos mostrar como gostaria que ficasse o resultado?

Neto
   - 23 dez 2015

Tércio, bom dia tudo bem.

Então fiz uma montagem aqui para você ver como eu gostaria que ficasse ou seja o registro tudo em uma linha só conforme imagem abaixo.

Clique na imagem para abrir em uma nova janela

Gilson Freitas
|
MVP
Pontos: 900
    23 dez 2015

Soment se fizer assim parceiro
watss 66-9687-2784

SELECT
f.cod_empresa
, f.cod_item
--, f.cod_item_compon
--, f.den_item_compon
--, f.cod_unid_med_compon
,sum(f.qtd_necessaria_sum) AS calc_tb
FROM nv_it_man_massa f
WHERE f.cod_empresa = '02'
AND f.cod_unid_med_compon = 'M'
AND (f.cod_item = '1570' OR (f.den_item_compon <> 'EP 6108-C') )
AND f.ies_tip_item = 'F'
AND f.ies_tip_item_compon = 'P'
AND f.cod_item = '37866'

GROUP BY
f.cod_empresa
, f.cod_item
--, f.cod_item_compon
--, f.den_item_compon
--, f.cod_unid_med_compon

Neto
   - 23 dez 2015

Gilson, boa tarde tudo bem?

Desta forma eu consigo, mas eu preciso desses campos pois concorda que o cod_item_compon e o campo den_item_compon são diferentes, então eu preciso dessa informação.

Neto
   - 28 dez 2015

Será, que tem alguma outra alternativa para tratar esta situação ?

Gilson Freitas
|
MVP
Pontos: 900
    28 dez 2015

Então você irá ter redundância de informação mesmo.
Você também pode fazer um select normal e fazer uma sub-consulta somente para a soma dos valores

Tente assim:
SELECT
f.cod_empresa
,f.cod_item
,f.cod_item_compon
,f.den_item_compon
,f.cod_unid_med_compon

,calc_tb =
(Select sum(T.qtd_necessaria_sum) from nv_it_man_massa T
Where
T.cod_empresa = f.cod_empresa
and T.cod_item = f.cod_item
)
FROM
nv_it_man_massa f
WHERE
f.cod_empresa = '02'
AND f.cod_unid_med_compon = 'M'
AND (f.cod_item = '1570' OR (f.den_item_compon <> 'EP 6108-C') )
AND f.ies_tip_item = 'F'
AND f.ies_tip_item_compon = 'P'
AND f.cod_item = '37866'

Neto
   - 28 dez 2015

Fala Gilson, bom dia.

Então dessa forma me trouxe o mesmo resultado redundante.