SQL - Obtener Monto Menor, si hay varios resultados, Mostrar el de Codigo Mayor

 
Vista:
sin imagen de perfil
Val: 37
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Obtener Monto Menor, si hay varios resultados, Mostrar el de Codigo Mayor

Publicado por Jorge (19 intervenciones) el 28/10/2017 23:19:02
Hola, Buenos días
Tengo el siguiente problema que no hallo como resolverlo
(MS-SQL Server 2014)
digamos que tengo una consulta de una Tabla que me bota el siguiente resultado
1
2
3
4
5
6
7
8
+--------+-----------+--------+------------------+-----------+
|CodReg  | Producto  | Precio | Documento        | Fecha     |
|--------+-----------+--------+------------------+-----------|
|REG0001 | Producto1 |  3.50  | BOL-B002-0001325 | 20170930  |
|REG0002 | Producto1 |  3.40  | FAC-F002-0001282 | 20170930  |
|REG0003 | Producto1 |  3.40  | BOL-B001-0001897 | 20170930  |
|REG0004 | Producto1 |  3.50  | FAC-F001-0001358 | 20170930  |
|REG0005 | Producto1 |  3.20  | BOL-B001-0001860 | 20170929  |

pero lo que quisiera es obtener solo el resultado para la fecha 20170930 (2017/09/30)
y con el Precio Menor que en este caso sería 3.40, pero como hay varios resultados,
entoces tomaría el más reciente que sería el de mayor registro REG0003
Quedando así:
1
|REG0003 | Producto1 |  3.40  | BOL-B001-0001897 | 20170930  |

estoy bloqueado y no se como obtener ese resultado
Ayuuudaaa... seguiré intentando
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Obtener Monto Menor, si hay varios resultados, Mostrar el de Codigo Mayor

Publicado por leonardo_josue (1173 intervenciones) el 30/10/2017 15:47:01
Hola Jorge:

Primero, acláranos una duda, al referirte al mayor registro, te refieres a que tu CODREG es un consecutivo?

1
2
|REG0002 | Producto1 |  3.40  | FAC-F002-0001282 | 20170930  |
|REG0003 | Producto1 |  3.40  | BOL-B001-0001897 | 20170930  |

y otra pregunta, ¿este código siempre comienza con TRES LETRAS y después UN NUMERO?, ¿implica esto que tu campo es de tipo caracter?

Saludos:
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 37
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Obtener Monto Menor, si hay varios resultados, Mostrar el de Codigo Mayor

Publicado por Jorge (19 intervenciones) el 30/10/2017 17:05:20
CodReg es un campo caracter(7), donde los datos no se repiten, es decir es una clave primaria
y se genera cada vez que se realiza un movimiento
es decir, el último CodReg es el último movimiento que se ha hecho (independientemente de la fecha)

entonces si tengo dos movimientos en una misma fecha
1
2
|REG0002 | Producto1 |  3.40  | FAC-F002-0001282 | 20170930  |
|REG0003 | Producto1 |  3.40  | BOL-B001-0001897 | 20170930  |

el movimiento más reciente (el último) para esa fecha, sería el de mayor CodReg, en este caso
1
|REG0003 | Producto1 |  3.40  | BOL-B001-0001897 | 20170930  |


Logro obtener los resultados para la fecha 20170930 (fecha es un número) pero de allí, no se como obtener solo el de precio menor (3.40) y después el de registro mayor (REG0003)
1
2
3
4
5
6
SELECT M.CodReg, M.Producto, M.Precio, M.Documento, M.Fecha
FROM Movimientos AS M
WHERE
M.Producto='Producto1'
and M.Fecha = (Select MAX(M2.Fecha) from Movimientos AS M2
               where M2.Producto=M.Producto and M2.Fecha=20170930)

Resultado:
1
2
3
4
|REG0001 | Producto1 |  3.50  | BOL-B002-0001325 | 20170930  |
|REG0002 | Producto1 |  3.40  | FAC-F002-0001282 | 20170930  |
|REG0003 | Producto1 |  3.40  | BOL-B001-0001897 | 20170930  |
|REG0004 | Producto1 |  3.50  | FAC-F001-0001358 | 20170930  |
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar