Ir para conteúdo
Fórum Script Brasil
  • 0

Sql - Função Max - Alguem Pode Me Ajudar!


Guest Elienai

Pergunta

SELECT TI.CD_PRODUTO, TI.QT_RECEBIDA, TNF.DT_ENTRADA_NF

FROM TB_ITEM_NF TI, TB_ENTRADA_NF TNF

WHERE TNF.NU_LANCAMENTO = TI.NU_LANCAMENTO AND

TI.CD_PRODUTO = PT.CD_PRODUTO AND

TI.CD_PRODUTO = '00001' AND

TNF.DT_ENTRADA_NF = (SELECT MAX(XF.DT_ENTRADA_NF)

FROM TB_ITEM_NF XI, TB_ENTRADA_NF XNF

WHERE XI.NU_LANCAMENTO = TI.NU_LANCAMENTO AND

XNF.NU_LANCAMENTO = XI.NU_LANCAMENTO AND

XI.CD_PRODUTO = TI.CD_PRODUTO)

OBJETIBO: ENCONTRAR A ULTIMA ENTRADA DE UM PRODUTO(0001) PELA DATA DE ENTRADA DA NOTA(DT_ENTRADA_NF).

USEI ESTA SELECT MAS NÃO DEU CERTO, ELA TROUXE TODAS AS ENTRADA DO PRODUTO(0001), OU SEJA, A FUNÇÃO MAX NÃO FUNCIONOU...

alguém SABE ONDE TA O ERRO, ME AJUDEM, POR FAVOR!!!!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

tongue.gif

A função max funciona da seguinte forma:

Ela serve para trazer o valor máximo de determinada coluna no teu caso DT_ENT_NF (data de entrada da nota fiscal)

se você quisesse apenas mostrar a data de maior valor da coluna

select MAX (DT_ENT_NF) from [tabela] where (condição)

neste caso você está usando o MAX como uma condição, ou seja...não há necessidade de usar um select dentro de um select o que seria um subselect

TI.CD_PRODUTO = '00001' AND

TNF.DT_ENTRADA_NF = (SELECT MAX(XF.DT_ENTRADA_NF)

FROM TB_ITEM_NF XI, TB_ENTRADA_NF XNF

WHERE XI.NU_LANCAMENTO = TI.NU_LANCAMENTO AND

XNF.NU_LANCAMENTO = XI.NU_LANCAMENTO AND

XI.CD_PRODUTO = TI.CD_PRODUTO)

o correto:

.

.

.

where

TI.CD_PRODUTO = '00001' AND

TNF.DT_ENTRADA_NF = MAX(XF.DT_ENTRADA_NF)

/

Link para o comentário
Compartilhar em outros sites

  • 0
tongue.gif

A função max funciona da seguinte forma:

Ela serve para trazer o valor máximo de determinada coluna no teu caso DT_ENT_NF (data de entrada da nota fiscal)

se você quisesse apenas mostrar a data de maior valor da coluna

select MAX (DT_ENT_NF) from [tabela] where (condição)

neste caso você está usando o MAX como uma condição, ou seja...não há necessidade de usar um select dentro de um select o que seria um subselect

TI.CD_PRODUTO = '00001' AND

TNF.DT_ENTRADA_NF = (SELECT MAX(XF.DT_ENTRADA_NF)

FROM TB_ITEM_NF XI, TB_ENTRADA_NF XNF

WHERE XI.NU_LANCAMENTO = TI.NU_LANCAMENTO AND

XNF.NU_LANCAMENTO = XI.NU_LANCAMENTO AND

XI.CD_PRODUTO = TI.CD_PRODUTO)

o correto:

.

.

.

where

TI.CD_PRODUTO = '00001' AND

TNF.DT_ENTRADA_NF = MAX(XF.DT_ENTRADA_NF)

/

deu o seginte erro: group function is not allowed here

Link para o comentário
Compartilhar em outros sites

  • 0

Função de grupo não é permitida aqui! hehehe biggrin.gif

tenta assim cara:

SELECT TI.CD_PRODUTO, TI.QT_RECEBIDA, TNF.DT_ENTRADA_NF

FROM TB_ITEM_NF TI, TB_ENTRADA_NF TNF

WHERE

TNF.NU_LANCAMENTO = TI.NU_LANCAMENTO AND

TI.CD_PRODUTO = PT.CD_PRODUTO AND

TI.CD_PRODUTO = '00001' AND = '00001' AND

TNF.DT_ENTRADA_NF = (SELECT MAX(DT_ENTRADA_NF) from (tabela do dado que se quer o MAX)

/

eu tentei com um exemplo parecido mas mais simples aqui e funcionou:

select count(cdpro) from cadpro where cdpro = (select max(cdpro) from cadpro)

/

COUNT(CDPRO)

------------

1

1 linha selecionada.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Amauri Marx (amauri@unoescsmo.ed

A função max funciona da seguinte forma:

Ela serve para trazer o valor máximo de determinada coluna no teu caso DT_ENT_NF (data de entrada da nota fiscal)

se você quisesse apenas mostrar a data de maior valor da coluna

select MAX (DT_ENT_NF) from [tabela] where (condição)

neste caso você está usando o MAX como uma condição, ou seja...não há necessidade de usar um select dentro de um select o que seria um subselect

TI.CD_PRODUTO = '00001' AND

TNF.DT_ENTRADA_NF = (SELECT MAX(XF.DT_ENTRADA_NF)

FROM TB_ITEM_NF XI, TB_ENTRADA_NF XNF

WHERE XI.NU_LANCAMENTO = TI.NU_LANCAMENTO AND

XNF.NU_LANCAMENTO = XI.NU_LANCAMENTO AND

XI.CD_PRODUTO = TI.CD_PRODUTO)

o correto:

.

.

.

where

TI.CD_PRODUTO = '00001' AND

TNF.DT_ENTRADA_NF = MAX(XF.DT_ENTRADA_NF)

GROUP BY TI.CD_PRODUTO

Agora acredito que funcione...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...