Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No me ha quedado muy claro de lo que quieres conseguir, ¿todas las diferentes municipio/partido?
Código:
6 ---  2
6 ---  3
6 ---  4
6 --- 18
6 ---  1
Responder Con Cita
  #2  
Antiguo 30-05-2018
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 17
TOPX Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No me ha quedado muy claro de lo que quieres conseguir, ¿todas las diferentes municipio/partido?
Si es así, en casi cualquier motor de base de datos, sería con algo como:
Código SQL [-]
select Municipio, Partido
from Tabla1
union 
select Municipio, Partido
from Tabla2
Por si acaso, el Sql Fiddle está en ~
http://sqlfiddle.com/#!18/47ecd/2
-
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #3  
Antiguo 30-05-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
con esta consulta obtienes los registros de la tabla1 que no están o no coinciden con los de la tabla2:
Código SQL [-]
select tabla1.*
from tabla1
left join tabla2 on tabla2.municipio = tabla1.municipio and tabla2.partido = tabla1.partido
where tabla2.partido is null

Y aquí una variante donde hace la unión de las dos tablas y buscas los registros que no están en ambas tablas

Código SQL [-]
select *
from (
 select *
 from tabla1
 union 
 select *
 from tabla2
 group by municipio, partido
) dat 
left join tabla1 on tabla1.municipio = dat.municipio and tabla1.partido = dat.partido
left join tabla2 on tabla2.municipio = dat.municipio and tabla2.partido = dat.partido
where tabla1.partido is null or tabla2.partido is null
Responder Con Cita
  #4  
Antiguo 30-05-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por bucanero Ver Mensaje
Y aquí una variante donde hace la unión de las dos tablas y buscas los registros que no están en ambas tablas
No sale exactamente lo que busco, pero se empieza a aproximar bastante a lo que me hace falta. Muchísimas gracias.
Responder Con Cita
  #5  
Antiguo 30-05-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias por vuestras respuestas.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No me ha quedado muy claro de lo que quieres conseguir, ¿todas las diferentes municipio/partido?
Sabía yo que no iba a ser fácil explicarlo, y es que es enrevesado. No es todas las diferentes municipio/partido de ambas tablas; son aquellas en las que en ambas tablas no coincidan esas parejas. Dicho de otra forma: Para el ejemplo que he puesto tendría que salir una única fila de ambas tablas. De la primera el par 6/18 y de la segunda el par 6/1.

Es una gestión de resultados electorales y el problema viene de la BB.DD. original en Access. Mientras en la definición de partidos políticos participantes en un proceso tiene definidas siete posibles partidos, a la hora de grabar los cargos electos (concejales) hay 15 ó 20 formaciones diferentes y como en la definición original no hay hueco para tantos, en los electos al no poder indicar el partido pone un valor por defecto pero que puede ser diferente en cada caso.

Cita:
Empezado por bucanero Ver Mensaje
con esta consulta obtienes los registros de la tabla1 que no están o no coinciden con los de la tabla2:
Gracias por la idea. No he probado el código (sinceramente no se me había ocurrido), pero me creo que no va a funcionar bien porque en ningún caso el campo partido está vacío; siempre tiene datos, lo que pasa es que el identificador de partido en la tabla2 puede o no estar en la tabla1.

Cita:
Empezado por TOPX Ver Mensaje
Si es así, en casi cualquier motor de base de datos
Menos aun. Y esto sí lo he probado: Así saco todos los que haya en AMBAS tablas. Yo necesito, de forma simultánea, los que estén sólo en una de ellas. Por eso decía al principio de la respuesta que me hacen falta las dos parejas 6/18 y 6/1, porqué sé seguro que en la tabla2 el partido de código 1 para el muncipio 6, corresponde SEGURO en la tabla 1 al pártido de código 18 apra el municipio 6. Esto, claro está, siempre que haya en las dos tablas el mismo número de partidos.
Responder Con Cita
  #6  
Antiguo 30-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ummm... pero entonces, para que lo tengamos claro, ¿qué resultado esperas obtener exactamente con tu ejemplo?
Responder Con Cita
  #7  
Antiguo 30-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Ummm... pero entonces, para que lo tengamos claro, ¿qué resultado esperas obtener exactamente con tu ejemplo?
Responder Con Cita
  #8  
Antiguo 30-05-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Ummm... pero entonces, para que lo tengamos claro, ¿qué resultado esperas obtener exactamente con tu ejemplo?
Lo que te he comentado: las dos parejas 6/18 (de la tabla1) y 6/1 (de la tabla2). Lo cierto es que la BB.DD. original en Access es un poco rara:
  • En una tabla tiene guardados los procesos electorales: tipo (muncipales, autónomicas, generales...), su fecha y hasta siete formaciones políticas Ele_Part1...Ele_Part7 (en casi todas el último valor es Otros, para los que no están codificados).
  • En una segunda tabla guarda el recuento de votos de una forma similar: localidad y Vot_P1...Vot_P7 para cada uno de los procesis
  • En otra tabla más (y sólo para las últimas elecciones muncipales) están los concejales que saca cada partido en cada municipio (NCo_P1...NCo_P7).
El partido Ele_Part1 se refleja en Vot_P1 y NCo_P1, etc. Con eso si hay un séptimo u octavo valor no codificado en la primera de ellas, en la segunda se va por defecto al valor Otros. De estó me di cuenta después de migrar las tablas en Access (una de estas dos tablas tiene como 50.000 registros), pero me he dado cuenta que en muchos casos si hay en esa primera tabla existe la codificación del partido, pero la captura de datos está mal hecha. Está claro que si en la tabla donde se codifican los partidos tengo cinco entradas y en la de resultados hay cuatro y una de ellas es Otros, no tengo forma de saber a quien corresponde realmente. Pero aunque eso es problema del usuario final, tengo que facilitarles la mayor cantidad de información,

Adaptando el segundo código de bucanero ya encontré una solución que se acerca bastante a lo que me hace falta.
Responder Con Cita
  #9  
Antiguo 31-05-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
A ver si esto te ayuda:
https://firebird21.files.wordpress.c..._sql_joins.jpg
Responder Con Cita
  #10  
Antiguo 31-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por duilioisola Ver Mensaje
¡Qué bueno!
Responder Con Cita
  #11  
Antiguo 01-06-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
Muy bueno. Dos cosas: primero que varias de esas combinaciones no las conocía y segundo que, ¡por fin!, he visto que los famosos diagramas de Ven valen para algo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tablas dbf patorecalde Tablas planas 4 04-12-2008 00:05:58
Coordinar desplazamiento StringGrid. BEPAI Varios 0 10-05-2007 17:12:23
tablas en sql server demasiadas tablas yeison Cristman SQL 8 10-08-2006 16:26:36
Tablas dbf. keys Conexión con bases de datos 2 13-10-2005 17:10:51
Ver tablas Onti Oracle 4 25-09-2003 16:26:24


La franja horaria es GMT +2. Ahora son las 10:59:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi