Array
(
)

Select juntar registro na mesta linha

Daniel Buso
   - 03 jun 2015

Srs.,
boa tarde tudo bem?
Eu fiz a select abaixo, o qual eu quero juntar registro na mesma linha.
Pelo que estou usando e pesquisei é para eu utilizaro max, mas ele não esta funcioando.
Quando traz o resultado da select, tem registros com a OP vem 3 op, com mesmo numero de produto,mesma quantidade, e com datas diferentes. Eu queria que ele trazia um resultado daquele registro, dai pulava para outro registro e assim sucessivamente.
Alguem pode me ajudar?
Grato,
SELECT
MAX(D3_OP) OP,
C5_CLIENTE+C5_LOJACLI CLIENTE,
C5_ZZREDUZ NOME,
D3_COD COD_PROD,
B1_DESC DESC_PROD,
D3_CF CF,
D3_TIPO TP,
D3_UM UM,
C2_ZZCORTE CO,
SUBSTRING(C2_DATPRI,1,4)+'-'+SUBSTRING(C2_DATPRI,5,2)+'-'+SUBSTRING(C2_DATPRI,7,2) DT_INICIAL,
SUBSTRING(C2_DATPRF,1,4)+'-'+SUBSTRING(C2_DATPRF,5,2)+'-'+SUBSTRING(C2_DATPRF,7,2) DT_FINAL,
SUBSTRING(D3_EMISSAO,1,4)+'-'+SUBSTRING(D3_EMISSAO,5,2)+'-'+SUBSTRING(D3_EMISSAO,7,2) DT_EMISSAO,
C2_QUANT QT_PRODUZIR,
C2_QUJE QT_PRODUZIDA
FROM SD3010
INNER JOIN SC2010
ON D3_FILIAL = C2_FILIAL
AND D3_OP = C2_NUM+C2_ITEM+C2_SEQUEN
AND C2_DATRF = ''
AND SC2010.D_E_L_E_T_ = ' '
INNER JOIN SB1010
ON '01' = B1_FILIAL
AND D3_COD = B1_COD
AND '' = SB1010.D_E_L_E_T_
INNER JOIN SC5010
ON '01' = C5_FILIAL
AND D3_DOC = C5_NUM
AND '' = SC5010.D_E_L_E_T_
WHERE D3_FILIAL = '01'
AND D3_EMISSAO >= '20150501'
AND D3_EMISSAO <= '20150531'
AND D3_CF = 'PR0'
AND D3_ESTORNO = ' '
AND SD3010.D_E_L_E_T_ = ' '
GROUP BY D3_OP, C5_CLIENTE+C5_LOJACLI, C5_ZZREDUZ, D3_COD, B1_DESC, D3_TIPO, D3_UM, C2_ZZCORTE, D3_EMISSAO, C2_QUANT, C2_QUJE, C2_DATRF, D3_CF, D3_NUMSEQ, C2_DATPRI, C2_DATPRF
ORDER BY D3_OP, D3_EMISSAO DESC

Marcos P
   - 03 jun 2015

Sempre que você postar código no fórum, use a tag "code" ( aqui em cima ).

Você consegue colocar exemplos do resultado que você está obtendo e do resultado que gostaria ?

Somente a análise da query não é suficiente para entender o que você precisa...