FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Eficiencia en Tabla
Hola a todos, se que no es un foro de visual basic 6, pero como uso FIREBIRD tal ves me puedan ayudar
Resulta que tengo la siguiente consulta: Código:
Select c.id_contratos, c.fecha, c.paciente, c.obra_social_paciente, c.edad, c.feriado, c.nocturno, c.fin_semana, c.urgencia_diurna, c.edad_extrema, c.operacion_suspendida, n.codigo AS cod1, n.descripcion AS descripcion1, n.complejidad AS comp1, c.bilateral1, c.multiple1, c.via1, n2.codigo AS cod2, n2.descripcion AS descripcion2, n2.complejidad AS comp2, c.bilateral2, c.multiple2, c.via2, n3.codigo AS cod3, n3.descripcion AS descripcion3, n3.complejidad AS comp3, c.bilateral3, c.multiple3, c.via3, n4.codigo AS cod4, n4.descripcion AS descripcion4, n4.complejidad AS comp4, c.bilateral4, c.multiple4, c.via4, n5.codigo AS cod5, n5.descripcion AS descripcion5, n.complejidad AS comp5, c.bilateral5, c.multiple5, c.via5, c.total_intervencion, c.anestesiologo1, c.cirujano1, c.cirujano2, c.paso, p.nombre AS paciNombre, p.apellido AS paciApellido, p.fecha_nacimiento AS paciFechaNac, p.dni, a.nombre AS anesteNombre, a.apellido AS anesteApellido, rel.numero_afiliado, ci.nombre AS ciruNombre, ci.apellido AS ciruApellido, ci2.nombre AS ciruNombre2, ci2.apellido AS ciruApellido2, fa.porcentaje AS porcen, o.descripcion_complejidad FROM contratos c INNER JOIN pacientes p ON (c.paciente = p.id_paciente) INNER JOIN rel_paciente rel ON (c.paciente = rel.id_paciente AND rel.id_obra_social = c.obra_social_paciente) INNER JOIN nomenclador n ON (c.intervencion1 = n.id_nomenclador) LEFT JOIN nomenclador n2 ON (c.intervencion2 = n2.id_nomenclador) LEFT JOIN nomenclador n3 ON (c.intervencion3 = n3.id_nomenclador) LEFT JOIN nomenclador n4 ON (c.intervencion4 = n4.id_nomenclador) LEFT JOIN nomenclador n5 ON (c.intervencion5 = n5.id_nomenclador) INNER JOIN anestesiologo a ON (c.anestesiologo1 = a.id_anestesiologo) LEFT JOIN cirujano ci ON (c.cirujano1 = ci.id_cirujano) LEFT JOIN cirujano ci2 ON (c.cirujano2 = ci2.id_cirujano) INNER JOIN facturado fa ON (c.id_contratos = fa.id_contrato) INNER JOIN obra_social o ON (c.obra_social_paciente = o.id_obra_social) WHERE c.id_contratos <> 1 AND c.paso = 3 Order By fecha, id_contratos ASC Código:
cnn.Execute "INSERT INTO HISTORIAL_CRYSTAL " & "(FECHA,OBRA_SOCIAL,DNI,PACIENTE,EDAD,CODIGO,PROCEDIMIENTO,COMPLEJIDAD,OBSERVACIONES,ID_CIRUJANO,CIRUJANO,IMPORTE,ID_ANESTESIOLOGO,ANESTESIOLOGO) VALUES('" & _ Format$(!fecha, "yyyy/mm/dd") & "','" & !obra_social_paciente & "','" & _ ob & "','" & !paciApellido & " " & !paciNombre & "','" & _ edad & "','" & codigos & "','" & descripciones & "','" & _ complejidad & "','" & observaciones & "','" & !cirujano1 & "','" & _ cirujanos & "','" & Str$(CDbl(!total_intervencion * !porcen / 100)) & "','" & !anestesiologo1 & "','" & _ !anesteApellido & " " & !anesteNombre & "')" Me podrian echar una manito de como crear el PROCEDURE Muchas Gracias |
#2
|
||||
|
||||
Hola, no se entiende nada en ese "galimatías"
De todas formas, si quieres/necesitas un stored procedure, deberías de describirnos las tablas involucradas y lo que quieres que haga, exactamente. No somos adivinos |
#3
|
|||
|
|||
Explicacion
Perdon por la pregunta que fue bastante confusa, paso a describir lo que necesito
TABLA -> CONTRATOS: fecha, paciente, obra_social_paciente, edad, feriado, nocturno, fin_semana, urgencia_diurna, edad_extrema, operacion_suspendida, bilateral1, multiple1, via1, bilateral2, multiple2, via2, bilateral13, multiple3, via3, bilateral4, multiple4, via4, bilateral5, multiple5, via5, total_intervencion, anestesiologo1, cirujano1, cirujano2, paso TABLA -> PACIENTES: nombre, apellido, fecha_nacimiento, dni TABLA -> REL_PACIENTE: rel.numero_afiliado TABLA -> OBRA_SOCIAL: descripcion_complejidad TABLA -> NOMENCLADOR: codigo, descripcion, complejidad TABLA -> ANESTESIOLOGO: nombre, apellido TABLA -> CIRUJANO: nombre, apellido TABLA -> FACTURADO: porcentaje Y lo que necesito que salga es ID_CONTRATOS -> viene de CONTRATOS | id_contratos * campo INTEGER FECHA_CONTRATO -> viene de la tabla CONTRATOS | fecha *campo DATE ID_OBRA_SOCIAL -> viene desde CONTRATOS | obra_social_paciente * campo INTEGER NUMERO_AFILIADO -> viene desde REL_PACIENTE y PACIENTE | INNER JOIN rel_paciente rel ON (c.paciente = rel.id_paciente AND rel.id_obra_social = c.obra_social_paciente) * campo BLOB NOMBRE y APELLIDO -> viene desde PACIENTES | INNER JOIN pacientes p ON (c.paciente = p.id_paciente) * campo VARCHAR(50) EDAD -> viene desde CONTRATOS | edad * campo CHAR(5) CODIGO -> viene desde CONTRATOS y NOMENCLADOR | INNER JOIN nomenclador n ON (c.intervencion1 = n.id_nomenclador) * CAMPO BLOB y son 5 codigos uno bajo el otro PROCEDIMIENTO -> viene desde CONTRATOS y NOMENCLADOR | INNER JOIN nomenclador n ON (c.intervencion1 = n.id_nomenclador) * CAMPO BLOB y son 5 codigos uno bajo el otro COMPLEJIDAD -> viene desde CONTRATOS y NOMENCLADOR | INNER JOIN nomenclador n ON (c.intervencion1 = n.id_nomenclador) * CAMPO BLOB y son 5 codigos uno bajo el otro OBSERVACIONES -> viene desde CONTRATOS feriado, nocturno, fin_semana, urgencia_diurna, edad_extrema, bilateral1, multiple1, via1, bilateral2, multiple2, via2, bilateral13, multiple3, via3, bilateral4, multiple4, via4, bilateral5, multiple5, via5 * CAMPO BLOB bajo el otro ID_CIRUJANO -> viene desde CONTRATOS | cirujano1 * campo INTEGER CIRUJANO -> viene de CONTRATOS y CIRUJANO | LEFT JOIN cirujano ci ON (c.cirujano1 = ci.id_cirujano) y LEFT JOIN cirujano ci2 ON (c.cirujano2 = ci2.id_cirujano) | campo BLOB IMPORTE -> viene desde CONTRATOS | total_intervencion * campo DOUBLE PRECISION ID_ANESTESIOLOGO -> viene desde CONTRATOS | anestesiologo1 * campo BLOB ANESTESIOLOGO -> viene de CONTRATOS y ANESTESIOLOGO | LEFT JOIN cirujano ci ON (c.cirujano1 = ci.id_cirujano) * campo BLOB PORCENTAJE -> viene desde FACTURADO | INNER JOIN facturado fa ON (c.id_contratos = fa.id_contrato) * campo INTEGER DESCRIPCION_COMPLEJIDAD -> viene desde OBRA_SOCIAL | INNER JOIN obra_social o ON (c.obra_social_paciente = o.id_obra_social) * campo VARCHAR(10) Espero no haber confundido mas las cosas |
#4
|
||||
|
||||
O sea, ¿quieres un select para extraer esos datos, no un stored procedure?
¿O acaso lo que quieres es una vista? |
#5
|
||||
|
||||
Casimiro, lo que creo que quiere hacer es un select en el store procedure, para este ejemplo, paso a dar un ejemplo de mis procedimientos de consultas en firebird, espero te ayude en algo.
Los parámetros de entrada son: FECHA_INICIAL FECHA_FINAL USU_UUID_IN Los que se encuentran dentro de RETURNS (...), son los parámetros de salida, es decir, un select en un sp en Firebird, requiere que las columnas sean entregadas a parámetros de salida. Saludos.
__________________
mas confundido que Garavito el día del Niño. Última edición por mightydragonlor fecha: 19-09-2012 a las 04:10:26. Razón: Arreglos menores =) |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Eficiencia de Zeos | camiz | Conexión con bases de datos | 13 | 11-07-2012 19:15:53 |
Eficiencia indices?¿? Como sacar lo mejor? | CHiCoLiTa | SQL | 5 | 07-09-2010 04:25:04 |
Sistema de Notificacion de Produccion y Eficiencia | Fiebru | Debates | 0 | 04-01-2010 15:18:10 |
La eficiencia de una conexión ADO | gcaffe | Conexión con bases de datos | 1 | 24-05-2007 18:03:26 |
Eficiencia master/detail | Luis Castillo | Conexión con bases de datos | 2 | 08-11-2005 18:25:04 |
|