none
Solo una observación por grupo de filas RRS feed

  • Pregunta

  • Necesito de vuestra sabia respuesta. Requiero generar una consulta que muestre después de "n" filas, una fila con el comentario secuencial asociado, osea la idea seria así:

    OT 0001

    001 Merengue 10 GR

       Ins Huevo           2 UN

       Ins Azúcar          4 CDA

    Obs Considera mano de obra disponible

    OT 0001

        001 Crema        50 GR

        Ins Leche         250 CC

    Obs Consultar estado de batidora

    La tabla OT, guarda los datos de la receta, pero al cambiar esta reseta, se debe desplegar la observación secuencial:

    Ot receta observa

    0001 001 Considera mano de obra disponible

    0001 002 Consultar estado de batidora

    Muchas gracias.

    martes, 17 de abril de 2018 20:35

Todas las respuestas

  • No es posible (ni deseable) en una única consulta.  Usted está pensando así:  "Hmm, qué bonito sería si SQL Server me devolviera los datos de la receta pero como que escrita de una vez nada más para imprimir línea a línea y listo."  Ese es un mal pensamiento.

    O bien hace un SP que devuelva múltiples resultados, donde los resultados impares (1ero, 3ero, 5to, etc.) son ingredientes y los pares (2do, 4to, etc.) son comentarios, o bien se olvida de tratar de usar SQL Server de forma tan incorrecta y arma la disposición de los datos en su aplicación, que es lo que le recomiendo.

    Supongo que hay alguna técnica o método que nos dice en qué parte de la lista de ingredientes va el comentario.  Tal vez por ahí hay algún número de secuencia global que se reparte entre las tablas que componen los datos de la receta.  Si fuere así (así lo haría yo), en .Net (o en un lenguaje de programación orientado a objetos) podemos tener una clase base con la propiedad Secuencia, y luego agruparlos todos bajo una misma colección (en .Net puede ser List<PasoReceta> porque tiene el método Sort()) y luego un bucle que genera el documento de la receta, basándose en el tipo de objeto.  Para quedar claros, PasoReceta sería una clase base.

    public class PasoReceta : Entity, IComparable<PasoReceta> //Entity sería la clase base de todas las entidades de base de datos, por ejemplo.
    {
        #region Propiedades
        public int Secuencia { get; set; }
        #endregion
    
        #region Métodos
        public int CompareTo(PasoReceta otro)
        {
            if (otro == null) return -1; //Cambiar a 1 para mover los nulos al inicio de la lista.
            return Secuencia.CompareTo(otro.Secuencia);
        }
        #endregion
    }


    Jose R. MCP
    Code Samples

    miércoles, 18 de abril de 2018 6:08
  • Si nos pasas la estructura de la tabla no creo que sea problema construir una consulta como esa. Pero así al vuelo.. es muy complicado imaginar como has diseñado. 

    Ojo , no nos pegues una imagen con la estructura, sino el script de creación y un par de insert de ejemplo.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    miércoles, 18 de abril de 2018 6:39
    Moderador