none
ayuda en este query RRS feed

  • Pregunta

  • SELECT     TOP (100) PERCENT tb1.IdCompania, tb1.IdPreciador, tb1.IdLocal, tb1.IdItem, tb1.PorcDescuento, tb1.PorcDesctoTC, tb1.PorcDesctoPromo, tb1.PorcDesctoDiferido, 
                          tb1.PlazosDiferidos, tb1.DescripcionPromocion, tb1.FechaDesde, tb1.FechaHasta, CASE WHEN LEN(tb1.IdItem) = 7 THEN
                              (SELECT     NombreCorto
                                FROM          Inventario.VwItem
                                WHERE      IdCompania = tb1.IdCompania AND IdItem = tb1.IdItem) ELSE CASE WHEN LEN(tb1.IdItem) = 4 THEN
                              (SELECT     NombreGrupo
                                FROM          Inventario.VwItem
                                WHERE      IdCompania = tb1.IdCompania AND IdLinea = SUBSTRING(tb1.IdItem, 1, 2) AND IdGrupo = SUBSTRING(tb1.IdItem, 3, 2)) 
                          ELSE CASE WHEN LEN(tb1.IdItem) = 2 THEN
                              (SELECT     NombreLinea
                                FROM          Inventario.VwItem
                                WHERE      IdCompania = tb1.IdCompania AND IdLinea = SUBSTRING(tb1.IdItem, 1, 2)) ELSE ' ' END END END AS NombreItem
    FROM         Mercadeo.TbPreciador AS tb1 LEFT OUTER JOIN
                          Inventario.VwItem AS tb2 ON tb1.IdItem = tb2.IdItem
    ORDER BY tb1.IdPreciador

    deseo que me ayuden revisando esta consulta, no me funciona el subquery q estoy realizando aqui.

     gracias x su ayuda


    Marlene

    miércoles, 6 de febrero de 2013 14:38

Respuestas

  • El mensaje de error es bastante explícito. Indica que alguna de las subconsultas que tienes devuelve más de un registro, lo cual hace que el motor no sepa cuál coger de ellos para mostrarlos.

    Más concretamente, revisa que

    SELECT NombreCorto FROM Inventario.VwItem WHERE IdCompania = tb1.IdCompania AND IdItem = tb1.IdItem

    o

    SELECT NombreGrupo FROM Inventario.VwItem WHERE IdCompania = tb1.IdCompania AND IdLinea = SUBSTRING(tb1.IdItem, 1, 2) AND IdGrupo = SUBSTRING(tb1.IdItem, 3, 2)

    o

    SELECT NombreLinea FROM Inventario.VwItem WHERE IdCompania = tb1.IdCompania AND IdLinea = SUBSTRING(tb1.IdItem, 1, 2)

    No devuelvan más de un registro

    miércoles, 6 de febrero de 2013 15:05

Todas las respuestas

  • ESTE ES EL MENSAJE DE ERROR, ME PUEDEN AYUDAR


    Marlene

    miércoles, 6 de febrero de 2013 14:59
  • El mensaje de error es bastante explícito. Indica que alguna de las subconsultas que tienes devuelve más de un registro, lo cual hace que el motor no sepa cuál coger de ellos para mostrarlos.

    Más concretamente, revisa que

    SELECT NombreCorto FROM Inventario.VwItem WHERE IdCompania = tb1.IdCompania AND IdItem = tb1.IdItem

    o

    SELECT NombreGrupo FROM Inventario.VwItem WHERE IdCompania = tb1.IdCompania AND IdLinea = SUBSTRING(tb1.IdItem, 1, 2) AND IdGrupo = SUBSTRING(tb1.IdItem, 3, 2)

    o

    SELECT NombreLinea FROM Inventario.VwItem WHERE IdCompania = tb1.IdCompania AND IdLinea = SUBSTRING(tb1.IdItem, 1, 2)

    No devuelvan más de un registro

    miércoles, 6 de febrero de 2013 15:05