Dúvida no Script
Bom dia a todos.
Estou apanhando para fazer um select, alguém poderia me ajudar?
Isso é permitido no MSSQL?
select EST_DATA_ENTRADA,EST_FK_EPI,EST_CUST_UND
from ESTOQUE
where EST_DATA_ENTRADA, EST_FK_EPI in
(select max(EST_DATA_ENTRADA), EST_FK_EPI from ESTOQUE
group by EST_FK_EPI) order by EST_FK_EPI
Esta ocorrendo o seguinte erro:
Msg 4145, Level 15, State 1, Line 3
An expression of non-boolean type specified in a context where a condition is expected, near ,.
Valeu,
Bruno
Estou apanhando para fazer um select, alguém poderia me ajudar?
Isso é permitido no MSSQL?
select EST_DATA_ENTRADA,EST_FK_EPI,EST_CUST_UND
from ESTOQUE
where EST_DATA_ENTRADA, EST_FK_EPI in
(select max(EST_DATA_ENTRADA), EST_FK_EPI from ESTOQUE
group by EST_FK_EPI) order by EST_FK_EPI
Esta ocorrendo o seguinte erro:
Msg 4145, Level 15, State 1, Line 3
An expression of non-boolean type specified in a context where a condition is expected, near ,.
Valeu,
Bruno
Bruno Banfi
Curtidas 1
Respostas
Joel Rodrigues
24/05/2012
Cara, essa consulta aí realmente não pode ser executada dessa forma. Eu até tava reescrevendo, mas vi que está meio confuso. Qual resultado você precisa? Talvez assim facilite pra te dizer qual a melhor forma de ser feito.
GOSTEI 0
Bruno Leandro
24/05/2012
tenta desta forma
SELECT A.EST_DATA_ENTRADA,A.EST_FK_EPI,A.EST_CUST_UND
FROM ESTOQUE A
WHERE A.EST_DATA_ENTRADA =(SELECT MAX(X.EST_DATA_ENTRADA) FROM ESTOQUE X WHERE X.EST_FK_EPI = A.EST_FK_EPI)
ORDER BY EST_FK_EPI
SELECT A.EST_DATA_ENTRADA,A.EST_FK_EPI,A.EST_CUST_UND
FROM ESTOQUE A
WHERE A.EST_DATA_ENTRADA =(SELECT MAX(X.EST_DATA_ENTRADA) FROM ESTOQUE X WHERE X.EST_FK_EPI = A.EST_FK_EPI)
ORDER BY EST_FK_EPI
GOSTEI 0
Bruno Banfi
24/05/2012
Joel / Bruno, bom dia.
Gostaria de fazer a seguinte consulta.
select EST_DATA_ENTRADA, EST_FK_EPI, EST_CUST_UND
from ESTOQUE
where EXISTS (select max(EST_DATA_ENTRADA), EST_FK_EPI from ESTOQUE
group by EST_FK_EPI) order by EST_FK_EPI
Resultado:
EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND
2012-03-28 NULL 23.00
2011-09-28 2 0.65
2012-05-16 2 0.69
2012-05-16 4 1.55
2011-09-30 4 1.55
2012-02-17 4 1.55
2011-09-28 59 3.05
2011-09-30 77 3.05
2012-02-17 77 3.05
2011-10-27 77 3.75
Preciso que o resultado pegue o Valor com a data mais recente:
EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND
2012-03-28 NULL 23.00
2012-05-16 2 0.69
2012-05-16 4 1.55
2011-09-28 59 3.05
2012-02-17 77 3.05
Poderia me dar um help?
Abraço,
Gostaria de fazer a seguinte consulta.
select EST_DATA_ENTRADA, EST_FK_EPI, EST_CUST_UND
from ESTOQUE
where EXISTS (select max(EST_DATA_ENTRADA), EST_FK_EPI from ESTOQUE
group by EST_FK_EPI) order by EST_FK_EPI
Resultado:
EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND
2012-03-28 NULL 23.00
2011-09-28 2 0.65
2012-05-16 2 0.69
2012-05-16 4 1.55
2011-09-30 4 1.55
2012-02-17 4 1.55
2011-09-28 59 3.05
2011-09-30 77 3.05
2012-02-17 77 3.05
2011-10-27 77 3.75
Preciso que o resultado pegue o Valor com a data mais recente:
EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND
2012-03-28 NULL 23.00
2012-05-16 2 0.69
2012-05-16 4 1.55
2011-09-28 59 3.05
2012-02-17 77 3.05
Poderia me dar um help?
Abraço,
GOSTEI 0
Bruno Leandro
24/05/2012
Ola xara, tenta assim
SELECT Distinct on ( A.EST_FK_EPI ) A.EST_DATA_ENTRADA,A.EST_FK_EPI,A.EST_CUST_UND
FROM ESTOQUE A
WHERE A.EST_DATA_ENTRADA =(SELECT MAX(X.EST_DATA_ENTRADA) FROM ESTOQUE X WHERE X.EST_FK_EPI = A.EST_FK_EPI)
ORDER BY EST_FK_EPI
SELECT Distinct on ( A.EST_FK_EPI ) A.EST_DATA_ENTRADA,A.EST_FK_EPI,A.EST_CUST_UND
FROM ESTOQUE A
WHERE A.EST_DATA_ENTRADA =(SELECT MAX(X.EST_DATA_ENTRADA) FROM ESTOQUE X WHERE X.EST_FK_EPI = A.EST_FK_EPI)
ORDER BY EST_FK_EPI
GOSTEI 0
Bruno Banfi
24/05/2012
Bruno,
Valeu pelo retorno.
Ocorre o seguinte erro:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword on.
Valeu,
Bruno
Valeu pelo retorno.
Ocorre o seguinte erro:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword on.
Valeu,
Bruno
GOSTEI 0
Bruno Leandro
24/05/2012
Ola, pode ser o alias no order, tente assim
SELECT Distinct on ( A.EST_FK_EPI ) A.EST_DATA_ENTRADA,A.EST_FK_EPI,A.EST_CUST_UND
FROM ESTOQUE A
WHERE A.EST_DATA_ENTRADA =(SELECT MAX(X.EST_DATA_ENTRADA) FROM ESTOQUE X WHERE X.EST_FK_EPI = A.EST_FK_EPI)
ORDER BY A.EST_FK_EPI
SELECT Distinct on ( A.EST_FK_EPI ) A.EST_DATA_ENTRADA,A.EST_FK_EPI,A.EST_CUST_UND
FROM ESTOQUE A
WHERE A.EST_DATA_ENTRADA =(SELECT MAX(X.EST_DATA_ENTRADA) FROM ESTOQUE X WHERE X.EST_FK_EPI = A.EST_FK_EPI)
ORDER BY A.EST_FK_EPI
GOSTEI 0
Bruno Banfi
24/05/2012
Bruno, fiz dessa maneira e parece que deu certo.
SELECT Distinct A.EST_DATA_ENTRADA,A.EST_FK_EPI,A.EST_CUST_UND
FROM ESTOQUE A
WHERE A.EST_DATA_ENTRADA =
(SELECT MAX(X.EST_DATA_ENTRADA) FROM ESTOQUE X, EPI as H
WHERE X.EST_FK_EPI = A.EST_FK_EPI)
ORDER BY A.EST_FK_EPI
Vou conferir os valores e já dou um feedback.
Valeu,
Bruno
SELECT Distinct A.EST_DATA_ENTRADA,A.EST_FK_EPI,A.EST_CUST_UND
FROM ESTOQUE A
WHERE A.EST_DATA_ENTRADA =
(SELECT MAX(X.EST_DATA_ENTRADA) FROM ESTOQUE X, EPI as H
WHERE X.EST_FK_EPI = A.EST_FK_EPI)
ORDER BY A.EST_FK_EPI
Vou conferir os valores e já dou um feedback.
Valeu,
Bruno
GOSTEI 0
Bruno Banfi
24/05/2012
Bruno você é o cara...rs
Deu certinho!!
Muito obrigado brother!
Abraços,
Bruno
Deu certinho!!
Muito obrigado brother!
Abraços,
Bruno
GOSTEI 0
Bruno Leandro
24/05/2012
valeu pelos elogios, estamos sempre prontos para ajudar
GOSTEI 0
Luiz Vichiatto
24/05/2012
O que estava ocorrendo é que em clausulas utilizando IN a busca tem que ser única no contexto
IN (valor1, valor2, ....)
no caso estava passando mais de um campo na consulta que estava no select que estava no IN
IN (valor1, valor2, ....)
no caso estava passando mais de um campo na consulta que estava no select que estava no IN
GOSTEI 0