none
ACTUALIZAR CAMPOS DE UNA TABLA CON CAMPOS DE OTRA TABLA RRS feed

  • Pregunta

  • Buenas noches.. 

    Estoy trabajando con SQL 2008 y VB.net.. 
    Para crear un reporte segun los campos que yo quiero cree una tabla temporal..

    SELECT b.intCodFactura as COD_FACTURA, c.charApellidoPaterno as PATERNO, c.charApellidoMaterno as MATERNO, c.charNombres as NOMBRES, 
    c.varRuc as RUC, c.varDireccion as DIRECCION, d.varPlaca as PLACA, a.intCodConceptoPago as CONCEPTO, 
    e.charDescripcionConceptoPago as DESCRIPCION, a.decIgv as IGV, a.moneyNeto as TOTAL 
    into ##tblTemporalFactura from tblDetalleFactura a 
    inner join tblFactura b on a.intCodFactura = b.intCodFactura 
    inner join tblConcesionaria c on c.varDniConcesionaria = b.varDniConcesionaria 
    inner join tblVehiculos d on d.intPadron = b.intPadron 
    inner join tblConceptoPago e on e.intCodConceptoPago = a.intCodConceptoPago

    Me arrojan 3 filas de datos que hasta ese momento tengo..
    Y como yo quiero hacer un reporte pero este no se puede crear a partir de una tabla temporal
    creo una tabla real en donde paso los mismo campos.. Realizo un select y me arroja las mismas 3 filas..

    Cuando elimino la tabla temporal y la vuelvo a crear ahora tengo 5 filas (2 nuevas filas)
    y lo mismo hago en la tabla real y solo tengo 3 filas.. 

    Como actualizo la tabla real para que ambas tengas constantemente la misma cantidad de filas..

    Gracias


    Jokesito

    sábado, 12 de enero de 2013 2:43

Respuestas

  • Hola Jokesito,

    Sí que puedes diseñar reports que accedan a tablas temporales sin problema alguno. Mi pregunta sería: ¿Como le pasas los datos al report? ¿Mediante un Dataset? Yo haría los pasos siguientes:

    a) Creas una tabla física (no temporal) con todos los campos que necesitas en el report.

    b) Diseñas el report.

    c) Eliminas la tabla física creada en el apartado a).

    4) Creas la consulta, guardando los datos en una tabla temporal.

    5) Le pasas los resultados de esa consulta al report.

    Mírate este thread del foro: http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/60ae2ec1-4a32-4c36-aff9-f11a526e3405, donde responden a tu misma duda.

    ¡Espero que te sirva!


    Ferran Chopo
    MCPD Web, MCITP SQL Server
    Web: http://www.ferranchopo.com Twitter: @fchopo

    • Marcado como respuesta Jokesito lunes, 14 de enero de 2013 1:44
    domingo, 13 de enero de 2013 12:06

Todas las respuestas

  • Hola.

    Prepara el reporte con la sentencia directamente, no necesitas que sea una tabla, puede ser una consulta. Sería la sentencia que ya tienes, pero sin el "into ##...". Que dé diferente número de registros no tiene sentido salvo que estés haciendo alguna cosa diferente en cada caso.

    Revísalo y nos dices.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    sábado, 12 de enero de 2013 6:27
    Moderador
  • Buenas dias.. el problema como le decia es que constantemente ingreso datos a mi tablas
    ( tblDetalleFactura, tblFactura, tblConcesionaria, tblVehiculos, tblConceptoPago), al realizar la consulta
    antes mencionada varia constantemente.. al principio tengo 6 filas.. luego inserto campos y varia a 10..
    y asi sucesivamente.. eso datos de la consulta los paso a una tabla temporal en donde se almacenan..

    Ahora mi problema radica en que para crear un reporte me aconsejaron que no se podia hacer un reporte
    con tablas temporales.. y que pase esos datos de la tabla temporal a una real con los mismos campos...

    Entonces como cojo los datos de la tabla temporal es necesario que esten constantemente actualizados y
    la verdad nose que tipo de consulta realiza.. 

    Espero me aai entendido.. Gracias.. 


    Jokesito

    sábado, 12 de enero de 2013 15:52
  • Hola Jokesito,

    Sí que puedes diseñar reports que accedan a tablas temporales sin problema alguno. Mi pregunta sería: ¿Como le pasas los datos al report? ¿Mediante un Dataset? Yo haría los pasos siguientes:

    a) Creas una tabla física (no temporal) con todos los campos que necesitas en el report.

    b) Diseñas el report.

    c) Eliminas la tabla física creada en el apartado a).

    4) Creas la consulta, guardando los datos en una tabla temporal.

    5) Le pasas los resultados de esa consulta al report.

    Mírate este thread del foro: http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/60ae2ec1-4a32-4c36-aff9-f11a526e3405, donde responden a tu misma duda.

    ¡Espero que te sirva!


    Ferran Chopo
    MCPD Web, MCITP SQL Server
    Web: http://www.ferranchopo.com Twitter: @fchopo

    • Marcado como respuesta Jokesito lunes, 14 de enero de 2013 1:44
    domingo, 13 de enero de 2013 12:06
  • Saque algunas conclusiones a partir de ese post.. y eso es lo que ahora implemento
    como prueba.. 

    Despues de tener mi tabla temporal creada paso los datos de esa tabla a una tabla real
    la cual me servira de medio para crear mis reportes..

    Muchas gracias.. :D


    Jokesito

    lunes, 14 de enero de 2013 3:24