elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ... 96
311  Programación / Bases de Datos / Re: Saber con que tabla esta relacionada. en: 3 Marzo 2010, 16:38 pm
Código
  1.  
  2. DECLARE @NombreTabla AS VARCHAR(50);
  3. SET @NombreTabla = 'tblUsuario';
  4.  
  5. SELECT FK.TABLE_NAME AS 'Nombre Tabla',
  6.   CU.COLUMN_NAME AS 'Columna Llave Foranea',
  7.   PK.TABLE_NAME AS 'Tabla Llave Primaria',
  8.   PT.COLUMN_NAME AS 'Columna Llave Primaria',
  9.   C.CONSTRAINT_NAME AS 'Entidad Relación'
  10. FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
  11.  INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
  12.    ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
  13.  INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
  14.    ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
  15.  INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
  16. ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
  17.  INNER JOIN( SELECT TC.TABLE_NAME, CU.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
  18. INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
  19.   ON TC.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
  20. WHERE TC.CONSTRAINT_TYPE = 'PRIMARY KEY'
  21.  ) PT
  22.    ON PT.TABLE_NAME = PK.TABLE_NAME
  23.  WHERE PK.TABLE_NAME = @NombreTabla
  24.  
  25.  
  26.  

No te olvides del punto y coma que separa las consultas  ;)
312  Programación / Bases de Datos / Re: Saber con que tabla esta relacionada. en: 3 Marzo 2010, 16:28 pm
Citar
Entonces MUL no simpre significa que sera un FK .. si es asi entonces cual es la forma indicada para saber cuando es una FK.

MUL no hace referencia a cuando un indice es una llave foreanea o no, es sencillamente una caracteristica de ese indice que dice que ese campo puede guardar valores repetidos que pueden ser NULL o pueden ser valores reales repetidos (siempre y cuando ese indice no sea UNIQUE sino INDEX o KEY)

No me consta que existe la caracteristica FK en las descripciones de las tablas, ya que esto no es una caracteristica de un indice.

Citar
Esto no anda..
Citar
SHOW TABLE STATUS\G

No??? que version de MySQL es??

Bueno te sirve SHOW CREATE como ya viste y igual te sirve indagar en el esquema information_schema :

select * from tables where table_name = 'tu_tabla'\G

Si existe una forma de utilizar alguna clausula de descripcion en una tabla para que te exponga su relacion de FK con otra tabla, yo particularmente no la he visto, existen consultas como las que te expongo que te muestran esa informacion, pero en la descripcion basica de una tabla (DESCRIBE TABLE) no...

Ah no ser que hagas uso de las consultas que te digo, o guardar esa info en variables como expone tooRllehS@xelA   o crear un procedimiento, una funcion UDF en fin... para guardar esto. Pero particularmente existe un comando dentro ya del motor para ello... No hasta lo que me consta.
313  Programación / Bases de Datos / Re: Saber con que tabla esta relacionada. en: 3 Marzo 2010, 16:09 pm
Citar
MUL (esto indica que es una relacion)

MUL indica que un indice puede contener valores repetidos no unicos. Digase un indice UNIQUE no puede contener valores repetidos pero, si puede contener valores NULL repetidos que es lo que indica MUL que un indice puede contener valores repetidos  ;)


Citar
quiero saber si existe alguna forma de saber el nombre de la tabla y el campo que se unen con esa relacion.

SHOW TABLE STATUS\G

SHOW CREATE TABLE nombre_tabla\G

314  Programación / Bases de Datos / Re: Registros duplicados en: 2 Marzo 2010, 00:58 am
Disculpa... en el momento que respondia aca estaba en el trabajo, y me era dificil coordinarme de tantas maneras y ofrecerte una respuesta valida.

Oracle por otro lado es muy estricto con su sintaxis.... no tanto como MySQL.

Intenta hacer esto:



SELECT
     EMPRESA.CIFNIF,
     CABALBARAN.CLIENTE,
     CLIENTES.NOMBRE,
     DETALBARAN.IDALBARAN,
     CABALBARAN.FECHA,
     (SELECT SUM(DETALBARAN.CANTIDAD*DETALBARAN.PRECIO) FROM DETALBARAN WHERE CABALBARAN.IDALBARAN=DETALBARAN.IDALBARAN AND CLIENTES.IDCLIENTE=CABALBARAN.CLIENTE ) AS "TOTAL_BRUTO",
     (SELECT
SUM((DETALBARAN.CANTIDAD*DETALBARAN.PRECIO)*DETALBARAN.DESCUENTO/100) FROM DETALBARAN WHERE CABALBARAN.IDALBARAN=DETALBARAN.IDALBARAN AND CLIENTES.IDCLIENTE=CABALBARAN.CLIENTE ) AS "TOTAL_DESCUENTO"

FROM
     EMPRESA,
     CLIENTES,
     DETALBARAN,
     CABALBARAN 

WHERE
    CABALBARAN.CLIENTE =16
    AND CABALBARAN.FECHA BETWEEN '13/01/10' AND '15/01/10'
    AND CABALBARAN.IDALBARAN=DETALBARAN.IDALBARAN
    AND CLIENTES.IDCLIENTE = CABALBARAN.CLIENTE
GROUP BY (EMPRESA.CIFNIF,  CABALBARAN.CLIENTE, CLIENTES.NOMBRE, DETALBARAN.IDALBARAN, CABALBARAN.FECHA )



Ocurre ser que en los JOINS de varias tablas en Oracle, en GROUP BY hay que incluir todos los campos especificados del SELECT, ya que el tiene que agrupar elementos unicos por cada tabla incluida en el JOIN.

Tambien puedes obviar GROUP BY y utilizar la clausula DISTINCT despues del SELECT y antes de los campos es otra manera.

Dime si te funciona
315  Programación / Bases de Datos / Re: Registros duplicados en: 1 Marzo 2010, 19:32 pm
sql server no???

aveces detesto los motores tan explicitos  :¬¬ 

Utiliza otro campo en GROUP BY que no utilizes aca:

CABALBARAN.CLIENTE =16
    AND CABALBARAN.FECHA BETWEEN '13/01/10' AND '15/01/10'
    AND CABALBARAN.IDALBARAN=DETALBARAN.IDALBARAN
    AND CLIENTES.IDCLIENTE = CABALBARAN.CLIENTE

pero que exista en una de las tablas.
316  Programación / Bases de Datos / Re: Registros duplicados en: 1 Marzo 2010, 19:16 pm
Valgame... no han utilizado llaves primarias ni unicas ahi  :-\  porque tienes datos redundantes y eso no es correcto. (aunque no te culpo)  :rolleyes:

A tu consulta SQL agregale GROUP BY CLIENTE por ejemplo  :P mas o menos:

SELECT
     EMPRESA.CIFNIF,
     CABALBARAN.CLIENTE,
     CLIENTES.NOMBRE,
     DETALBARAN.IDALBARAN,
     CABALBARAN.FECHA,
     (SELECT SUM(DETALBARAN.CANTIDAD*DETALBARAN.PRECIO) FROM DETALBARAN WHERE CABALBARAN.IDALBARAN=DETALBARAN.IDALBARAN AND CLIENTES.IDCLIENTE=CABALBARAN.CLIENTE ) AS "TOTAL_BRUTO",
     (SELECT
SUM((DETALBARAN.CANTIDAD*DETALBARAN.PRECIO)*DETALBARAN.DESCUENTO/100) FROM DETALBARAN WHERE CABALBARAN.IDALBARAN=DETALBARAN.IDALBARAN AND CLIENTES.IDCLIENTE=CABALBARAN.CLIENTE ) AS "TOTAL_DESCUENTO"

FROM
     EMPRESA,
     CLIENTES,
     DETALBARAN,
     CABALBARAN 

WHERE
    CABALBARAN.CLIENTE =16
    AND CABALBARAN.FECHA BETWEEN '13/01/10' AND '15/01/10'
    AND CABALBARAN.IDALBARAN=DETALBARAN.IDALBARAN
    AND CLIENTES.IDCLIENTE = CABALBARAN.CLIENTE
GROUP BY
CLIENTE

317  Programación / Bases de Datos / Re: Datos del Sistema con MySQL en: 28 Febrero 2010, 02:25 am
Consultas SQL me temo que no, consultas hacia la terminal del sistema operativo si  ;)

Recuerda que la base de datos, solo tiene sus propios comandos internos y sirve para recibir peticiones de consulta... mas info de la ubicacion de una carpeta no. Solo info de si misma.

Pero si es posible (al menos en MySQL y Oracle y DB2) asumo que en SQL Server igual, ejecutar comandos del sistema dentro del motor y que este te retorne  ;)
318  Programación / Bases de Datos / Re: Recuperar valor de consulta SQL en: 27 Febrero 2010, 21:09 pm
Bueno siempre es buscarle la vuelta al asunto

Un besito para mi  :D

Grax.
319  Foros Generales / Foro Libre / Re: Duda con Pasaporte en: 27 Febrero 2010, 21:03 pm
Bueno sabes lo que debes hacer  ;)  pero tambien sabes que si dice hora de llegada 6:05 am se refiere a Brazil porque estaras en Brazil no en Espana ni Roma.

y cual es la ocasion de visita  :P
320  Foros Generales / Foro Libre / Re: Duda con Pasaporte en: 27 Febrero 2010, 20:57 pm
Si pero tienes siempre que fijarte en la hora de llegada, todos los boletos lo tienen aun sea a un pueblo que viajes dentro de tu mismo pais. Sino como le dices al que va a recogerte ve por mi a tal hora....

Considerare que a lo mejor tomaste un Taxi en Londres y por eso obviaste la hora que llegaste, pero si vas a viajar sin duda querras saber a que hora llegas a destino. Pero si el boleto dice 6:05 am es porke llegaras a las 6:05 am en ese vuelo que esta pronosticado a llegar a esa hora a brazil, independientemente de que diga 11, 20, 15 horas de vuelo, la hora de llegada no se confunde.
Páginas: 1 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ... 96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines