none
Consulta avanzada RRS feed

  • Pregunta

  • Buenos días, tengo un problemas en una búsqueda de múltiples tablas.

    Las tablas son producto, precio y stock

    En Producto tiene los siguientes campos producto, habilitado

    En Precio tiene producto, precio fecha

    En Stock tiene producto, stock

    El problema es que en la tabla precio se repiten los productos pero cambian los precios y fecha.

    Lo que quiero es generar una consulta en la que me muestre producto, precio y stock.

    El problema que cuando hago la consulta me muestra todos los  registros de precio y yo solo quiero que me muestre los productos que tienen mayor fecha.


    Cualquier duda me avisan ya que es muy importante que pueda resolver este problemas

    Ejemplo de tabla PRECIO

    CODIGO PRECIO FECHA

    011 15 2011-02-03 00:00:00.000

    001 12 2011-01-03 00:00:00.000

    011 16 2012-03-05 00:00:00.000

    001 10 2013-04-01 00:00:00.000

    Muchas Gracias

    Saludos

    jueves, 27 de marzo de 2014 14:39

Respuestas

  • Para este tipo de problemas / preguntas es mejor que postees un script con la estructura de las tablas, data de ejemplo en forma de sentencias insert asi como los resultados esperados.

    De esa manera no tendremos que mal gastar nuestro tiempo trantando de reproducir tu ambiente, ni tampoco adivinar restricciones, indices, etc.

    Ayudanos para poder ayudarte.

    En relacion a la pregunta, pudieras usar una funcion de rango para sleccionar los precios en cuestion y luego unir con el resto de las tablas.

    with C1 as (
    select
        *, -- usa las columnas que necesitas
        row_number() over(partition by producto order by fecha DESC) as rn
    from
        precios
    )
    select P.codigo_prod, C1.precio, C1.fecha, S.stock
    from producto as P inner join C1 on P.codigo_prod = C1.codigo_prod and C1.rn = 1
    inner join stock as S on P.codigo_prod = S.codigo_prod;


    AMB

    Some guidelines for posting questions...


    jueves, 27 de marzo de 2014 15:20

Todas las respuestas

  • Para este tipo de problemas / preguntas es mejor que postees un script con la estructura de las tablas, data de ejemplo en forma de sentencias insert asi como los resultados esperados.

    De esa manera no tendremos que mal gastar nuestro tiempo trantando de reproducir tu ambiente, ni tampoco adivinar restricciones, indices, etc.

    Ayudanos para poder ayudarte.

    En relacion a la pregunta, pudieras usar una funcion de rango para sleccionar los precios en cuestion y luego unir con el resto de las tablas.

    with C1 as (
    select
        *, -- usa las columnas que necesitas
        row_number() over(partition by producto order by fecha DESC) as rn
    from
        precios
    )
    select P.codigo_prod, C1.precio, C1.fecha, S.stock
    from producto as P inner join C1 on P.codigo_prod = C1.codigo_prod and C1.rn = 1
    inner join stock as S on P.codigo_prod = S.codigo_prod;


    AMB

    Some guidelines for posting questions...


    jueves, 27 de marzo de 2014 15:20
  • Muchas gracias.

    Le hice unas modificaciones en la estructura,  pero me sirvió el funcionamiento de la primera parte.

    viernes, 28 de marzo de 2014 20:57