none
Nuevamente ayuda, llevo rato tratando de hacer un insert y no lo consigo. RRS feed

  • Pregunta

  • La cuestion es la siguiente, tengo un form que contiene un combobox(cmbtarjetas) y un boton

    al cargar ese form se revisa si existe la tabla azv_tarjprod si no esta la crea, todo bien, ahora bien la funcion de ese boton es la siguiente yo tengo que insertar en esa tabla datos de otras tablas, esta tabla azv_tarjprod contiene de columnas (Tarjetas, Codigo, Descripcion) de donde voy a sacar los datos son de dos tablas mas de gen_producto y azv_tarjesp donde gen_producto tiene de columna(codigo, descripcion) y azv_tarjesp tiene de columnas(Tarjetas, Especificos) en esta tabla los datos son por ejemplo segun el orden de las dos columnas(01, 233208) ahora lo que quiero es hacer un insert en la tabla azv_tarjprod cumpliendose una condicion,primero tarjetas lo saco del combobox ,segundo que me compare la tarjeta que yo escoji con la tarjeta que esta en azv_tarjesp si existe entonces que me compare el especifico(233208) con todos los codigos de gen_producto que empiezen por 233208 para luego poder insertar en la tabla la tarjetas codigos y descripcion,no se si me hago entender.necesito esa ayudita por favor,desde ya mil gracias

    • Cambiado Enrique M. Montejo sábado, 29 de julio de 2017 16:33 Pregunta relacionada con el acceso a datos.
    jueves, 27 de julio de 2017 22:54

Respuestas

  • Intenta con la siguiente consulta de inserción:

    INSERT INTO dbo.azv_tarjprod (Tarjetas, Codigo, Descripcion)
    SELECT
        te.Tarjetas, p.Codigo, p.Descripcion
    FROM
        azv_tarjesp te
        INNER JOIN gen_producto p ON te.Especificos LIKE p.Codigo + '%'
    WHERE
        te.Tarjetas = @Tarjetas /*cmbTarjetas.Text*/
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 27 de julio de 2017 23:48
  • Mi buen colega william gracias por tu aporte, haciendo unas correcciones a tu consulta logre lo que queria.alfiiinn..jaja.aqui la dejo:

    INSERT INTO azv_tarjprod
                             (Tarjetas, Productos, Descripcion)
    SELECT        te.Tarjetas, p.codigo, p.descripcion
    FROM            azv_tarjesp AS te CROSS JOIN
                             gen_producto AS p
    WHERE        (te.Tarjetas = @Tarjetas) AND (p.codigo LIKE te.Especificos + '%')

    Muchas gracias una vez mas por responder.Salu2s

    • Marcado como respuesta PedroJ2017 viernes, 28 de julio de 2017 1:56
    viernes, 28 de julio de 2017 1:55

Todas las respuestas

  • en verdad no se te entiende ... Te aconsejo que mandes una estructura de lo que te esta saliendo  y lo que quieres que te salga. Si es posible adjunta tu tabla para poder comprender bien 

    COD  VARIABLE 

    1       AA

    2       ASDS

    3      ASDASD


    Pasa los puntos prro v:

    jueves, 27 de julio de 2017 22:57
  • te inserto las tablas y te digo lo que quiero hacer asi se entendera mejor.

    -Miren lo que quiero es que cuando yo en el form escoja una tarjeta me compare con la tabla azv_tarjesp, entonces si esta, los datos de la columna especificos que son de 6 digitos me los compare con la tabla gen_producto y todo el codigo que empieze por esos 6 digitos o sea que sean iguales su 6 primeros digitos entonces me inserte en la tabla azv_tarjprod los datos de la tarjeta seleccionada y sus productos partiendo de la comparacion de los especificos.espero entiendan.


    jueves, 27 de julio de 2017 23:37
  • no pude insertar las imagenes de las tablas, me sale un cartelito notificandome que mi cuenta esta verificandose,no se pork sera,espero que en el mensaje anterior me hayas entendido sino aqui un diagrama:

    tabla azv_tarjesp

    Tarjetas | Especificos

    01             233208

    01             233210

    02             560100

    tabla gen_producto

    Codigo           | Descripcion

    2332080039    Aceite

    2332100040    Aceite1

    5601000020    Rodamiento

    tabla azv_tarjprod

    si en mi form seleccionara la tarjeta 01 te fijas y la tarjeta 01 tiene 2 especificos entonces esos dos especificos lo comparo con los codigos de gen_producto siempre tendiendo en cuenta de que los 6 primero digitos tienen que ser iguales entonces de ahi es que hago el insert me quedaria esta tabla asi en base a lo expuesto arriba:

    Tarjetas | Codigo          | Descripcion

    01            2332080039   Aceite

    01            2332100040   Aceite1

    espero me hayan entendido ahora mejor.saludos y a la espera.

    jueves, 27 de julio de 2017 23:42
  • Intenta con la siguiente consulta de inserción:

    INSERT INTO dbo.azv_tarjprod (Tarjetas, Codigo, Descripcion)
    SELECT
        te.Tarjetas, p.Codigo, p.Descripcion
    FROM
        azv_tarjesp te
        INNER JOIN gen_producto p ON te.Especificos LIKE p.Codigo + '%'
    WHERE
        te.Tarjetas = @Tarjetas /*cmbTarjetas.Text*/
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 27 de julio de 2017 23:48
  • no inserta ningun registro
    viernes, 28 de julio de 2017 1:35
  • Mi buen colega william gracias por tu aporte, haciendo unas correcciones a tu consulta logre lo que queria.alfiiinn..jaja.aqui la dejo:

    INSERT INTO azv_tarjprod
                             (Tarjetas, Productos, Descripcion)
    SELECT        te.Tarjetas, p.codigo, p.descripcion
    FROM            azv_tarjesp AS te CROSS JOIN
                             gen_producto AS p
    WHERE        (te.Tarjetas = @Tarjetas) AND (p.codigo LIKE te.Especificos + '%')

    Muchas gracias una vez mas por responder.Salu2s

    • Marcado como respuesta PedroJ2017 viernes, 28 de julio de 2017 1:56
    viernes, 28 de julio de 2017 1:55