Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Consulta sql

Estas en el tema de Consulta sql en el foro de Visual Basic clásico en Foros del Web. Holas... Tengo el siguente problema... Tengo 3 tablas y quiero mostrar en un DataGrid los datos de estas 3, las tablas son: funcionario cargo decreto ...
  #1 (permalink)  
Antiguo 06/12/2007, 19:18
Avatar de fonchi  
Fecha de Ingreso: septiembre-2006
Ubicación: Concepción
Mensajes: 170
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Consulta sql

Holas...

Tengo el siguente problema... Tengo 3 tablas y quiero mostrar en un DataGrid los datos de estas 3, las tablas son:

funcionario
cargo
decreto

En la tabla decreto guardo datos que vienen de funcionarios y cargo, mas los propios de la tabla.

La tabla decreto es asi:

- rut_funcionario ----> ref a funcionario
- car_n_cargo ----> ref a cargo
- n_decreto ----->pk de decreto

Ahora la duda es como debo realizar este select queme tiene bastante mareado.

Resumiendo, quiero mostrar en el DataGrid los datos del funcionario y que cargo ejerce.

De antemano gracias totales.
  #2 (permalink)  
Antiguo 06/12/2007, 23:33
 
Fecha de Ingreso: mayo-2005
Mensajes: 117
Antigüedad: 19 años
Puntos: 0
Re: Consulta sql

holas....

aver seria algo asi ....

select * from funcionario f, cargo c, decreto d
where
----si lo buscas por funcionario o por cargo o por decreto, solo ocupa la sentencia(s) con la variable o las variable que utilices
pk_funcionario= varible_funcionario
and pk_cargo= variable_cargo
and pk_decreto=variable_decreto

-- las sigueitnes son importantes y obligatorias ya qeu con eso amarras las tablas
and d.rut_funcionario = f.pk_funcionario (suponiendo en rut_funcionario(ref a funcionario) guardas la pk de funcionario)
and d.car_n_cargo = c.pk_cargo (suponiendo en car_n_cargo(ref a cargo) guardas la pk de cargo )


espero que te sea de ayuda.... saludos

cuial quier cosa por aqui o por el mails
[email protected]
[email protected]

Última edición por rahd_rr; 06/12/2007 a las 23:39
  #3 (permalink)  
Antiguo 07/12/2007, 08:18
Avatar de fonchi  
Fecha de Ingreso: septiembre-2006
Ubicación: Concepción
Mensajes: 170
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Consulta sql

Cita:
Iniciado por rahd_rr Ver Mensaje
holas....

aver seria algo asi ....

select * from funcionario f, cargo c, decreto d
where
----si lo buscas por funcionario o por cargo o por decreto, solo ocupa la sentencia(s) con la variable o las variable que utilices
pk_funcionario= varible_funcionario
and pk_cargo= variable_cargo
and pk_decreto=variable_decreto

-- las sigueitnes son importantes y obligatorias ya qeu con eso amarras las tablas
and d.rut_funcionario = f.pk_funcionario (suponiendo en rut_funcionario(ref a funcionario) guardas la pk de funcionario)
and d.car_n_cargo = c.pk_cargo (suponiendo en car_n_cargo(ref a cargo) guardas la pk de cargo )


espero que te sea de ayuda.... saludos

cuial quier cosa por aqui o por el mails
[email protected]
[email protected]
Primero que nada, gracias por el interés...

A continuacion te mando lo que tengo:


Set cn = New ADODB.Connection


cn.ConnectionString = "Provider=SQLOLEDB; " & _
"Initial Catalog=tesis; " & _
"Data Source=DESKTOP\SQLEXPRESS; " & _
"integrated security=SSPI; persist security info=True;"
cn.Open

--------------Esto es lo que tengo yo, pero me muestra todos los datos no los necesito todos, por ejemplo necesito el nombre del cargo y me muestra el codigo del cargo, si sirve como dato uso un adodc---------------------------------------------------------------
'Set rs = New ADODB.Recordset
'rs.CursorLocation = adUseClient
'sqlstring = "SELECT * FROM FUNCIONARIOS INNER JOIN DECRETOS ON FUNCIONARIOS.FUN_RUN=DECRETOS.FUN_FUN_RUN " & _
'" AND CAR_N_CARGO IN (SELECT N_CARGO FROM CARGOS) " & _
'"WHERE FUN_TYPE = '" & txtfuntipo.text & "' AND SEXO = '" & txtsexo.text & "' "

--------Lo que dices tu que haga es esto?--------------
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
sqlstring = "SELECT * FROM FUNCIONARIOS , CARGOS , DECRETOS " & _
"WHERE FUN_RUN= '" & txtrun.text & "' " & _
"AND DECRETOS.FUN_FUN_RUN=FUNCIONARIOS.FUN_RUN " & _
"AND DECRETOS.CAR_N_CARGO=CARGOS.N_CARGO"


rs.Open sqlstring, cn, adOpenStatic, adLockOptimistic
If rs.Supports(adBookmark) Then
If rs.RecordCount = 0 Then
MsgBox "No hay Resultados para su consulta", vbInformation, ""
Else
Set DataGrid1.DataSource = rs
End If
End If



Bueno, nuevamente gracias.
  #4 (permalink)  
Antiguo 07/12/2007, 11:23
 
Fecha de Ingreso: diciembre-2007
Mensajes: 1
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Consulta sql

Hola Fonchi

No hagas un SELECT * FROM nomTabla,
sino en el select escribe todos los campos q quieres mostrar,

EJemplo:

Donde;
Funcionario y Cargo son Tablas

SELECT F.nombreFuncionario, C.cargo From
Funcionarios as F INNER JOIN Cargo as C
ON F.IDCARGO=C.IDCARGO
  #5 (permalink)  
Antiguo 08/12/2007, 17:08
 
Fecha de Ingreso: mayo-2005
Mensajes: 117
Antigüedad: 19 años
Puntos: 0
Re: Consulta sql

hola...

estoy de acuerdo son Enrikin..

o de la otra forma......

SELECT F.campo1, F.campoX, C.campo1, C.campoX
FROM FUNCIONARIOS F, CARGO C, DEVRETO D
WHERE F.FUN_RUN= '" & txtrun.text & "' " & _
"AND D.FUN_FUN_RUN=F.FUN_RUN " & _
"AND D.CAR_N_CARGO=C.N_CARGO"


SALUDOS.......

....rahd rr
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:56.