Comunidad de diseño web y desarrollo en internet online

consulta maximo registro - 1

Citar            
MensajeEscrito el 22 May 2019 02:33 pm
cordial saludo,
tengo una tabla con los datos
id valor tipo
1 1212 CAJAMENOR
6 1157462 CAJAMENOR
7 673511 CAJAGENERAL
8 233333 CAJAMENOR

requiero tomar el id y el valor del maximo registro - 1 cuando el tipo sea CAJAMENOR O CAJAGENERAL.
por ejemplo tengo el id 8 valor 233333 si ejecuto la consulta de siguiente manera
SELECT
Max(a.idtesoarqueo)
FROM
tesoarqueo AS a
WHERE a.TipoRegistro = 'CAJAMENOR'
me entrega el resultado ya mencionado

ahora bien necesito que me muestre realmente el id 6 valor 1157462, para lo que ejecute esta consulta
SELECT
m.TotGastos,
m.idtesoarqueo
FROM
tesoarqueo AS m
WHERE
m.idtesoarqueo = (
SELECT
Max(a.idtesoarqueo)-1
FROM
tesoarqueo AS a
WHERE a.TipoRegistro = 'CAJAMENOR'
)
pense que al agregar la condicion WHERE a.TipoRegistro = 'CAJAMENOR' en la subconsulta me entregaria el resultado, pero no, me muestra el resultado del id 7.

agradezco su colaboración para guiarme en la solución

Por albertovelon

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 May 2019 02:27 pm
El tema de las consultas con funciones de agregación (MAX, MIN, AVG, etc...) sin cláusula GROUP BY son un arma de doble filo (De hecho, creo que es algo que sólo MySQL soporta... y en mi opinión, es un bug).

Yo te recomendaría encarar la consulta de esta forma:

SELECT idtesoarqueo FROM tesoarqueo ORDER BY idtesoarqueo DESC LIMIT 1

De esa forma seguro te quedás siempre con el ID máximo y después hacés lo que necesites.

Por mchojrin

37 de clabLevel



Genero:Masculino  

Ayudo desarrolladores PHP a acelerar su llegada a Sr.

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.