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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 16 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 ... 96
301  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Hasta la p**** del spam en el foro en: 7 Marzo 2010, 20:55 pm
A ti tambien te envio pm con eso??? a mi me envio un PM con eso y luego otro PM preguntandome si yo era travesti.  :P

En fin
302  Programación / Scripting / Re: [Problema]Con script en perl. en: 6 Marzo 2010, 03:48 am
Lo se  ;)   es costumbre ya personal mia... asi como dar uso de fprintf en C cuando puedo perfectamente dar uso de printf.

Pero... se accepta la sugerencia  :P  para el chico que pregunto digo, porque la costumbre no creo que se me quite  :xD
303  Programación / Bases de Datos / Re: SQL--Where fechas (Condición de fechas) en: 5 Marzo 2010, 19:02 pm
Bueno en el caso que expuse, utilize SUBSTR por la siguiente razon:

Código
  1. (TO_CHAR(FECHA, 'DD/MM/YY'))
  2.  

Eso bien sabes retorna la fecha como '00/00/0000' en vez de '00-MES-00'

Y utilizo SUBSTR para que empieze a contarme en el caracter numero 4 hacia la derecha, y me cuente solo 2 posiciones.. 4 y 5 que corresponde al mes. Fijate:

25/02/2009

Donde:

25 : Es el dia del mes, corresponde a 2 caracteres que son caracter 1 = 2 y caracter 2 = 5

/ : Barra de separacion de la fecha corresponde al caracter numero 3

02 : Mes correspondiente del año, donde el 0 = 4 caracter y el 2 = 5 caracter.

Como solo requiero en mi caso, el mes del año del que se habla, solo tomo 2 caracteres a partir del 4 caracter leido  ;) (Por eso uso SUBSTR)

Código
  1. SUBSTR((TO_CHAR(FECHA, 'DD/MM/YY')), 4, 2) = a;
  2.  

El resultado final de SUBSTR((TO_CHAR(FECHA, 'DD/MM/YY')), 4, 2)  es 02 que corresponde a Febrero, = a  'a' es una variable que contiene un valor entero, en tu caso puedes sustituir a 'a' por un numero entero del mes, en este caso si coloco en su lugar 02 y existen registros en la tabla del mes FEBRERO se contaran todos y se retornara al finalize que para el mes 2 (FEBRERO) existen X cantidad de registros...

Un saludo  ;)
304  Programación / Scripting / Re: [Problema]Con script en perl. en: 5 Marzo 2010, 18:53 pm
Querras captar el retorno de carro o valor null o tecla 'Enter' como ultimo caracter de la frase introducida no?  ;)


Código
  1.  
  2. print("Escribe una contraseña :: ");
  3. my $pass = <STDIN>;
  4. chomp($pass);
  5.  
  6.  if ( $pass eq "hola" ) {
  7.  
  8.     print STDOUT "Es correcto\n";
  9.  
  10.  } else {
  11.  
  12.     print STDOUT "Es Incorrecto\n";
  13.  
  14.  }
  15.  
  16.  

Haz la prueba... observa y prueba :


Código
  1.  
  2. print("Escribe una contraseña :: ");
  3. my $pass = <STDIN>;
  4.  
  5.  if ( $pass eq "hola\n" ) {
  6.  
  7.     print STDOUT "Es correcto\n";
  8.  
  9.  } else {
  10.  
  11.     print STDOUT "Es Incorrecto\n";
  12.  
  13.  }
  14.  
  15.  

El retorno de carro o tecla Enter tiene el valor '\n'

Saludos  :rolleyes:
305  Programación / Bases de Datos / Re: SQL--Where fechas (Condición de fechas) en: 5 Marzo 2010, 13:22 pm
Pues puro SQL

Código
  1.  
  2. SELECT COUNT(SALARIO) INTO SUMA FROM EJEMPLO WHERE FECHA > '31-DEC-08' AND SUBSTR((TO_CHAR(FECHA, 'DD/MM/YY')), 4, 2) = a;
  3.  
  4.  

306  Programación / Bases de Datos / Re: SQL--Where fechas (Condición de fechas) en: 5 Marzo 2010, 01:39 am
Si te inclinas por crear un procedimiento con lo siguiente como contenido... podria servirte  :rolleyes:  Donde la fecha puede pasar como parametro.

Código
  1.  
  2. SQL> SELECT * FROM ejemplo;
  3.  
  4. FECHA        SALARIO
  5. --------- ----------
  6. 20-JAN-09      23000
  7. 15-JAN-09      14000
  8. 28-FEB-09      20000
  9. 15-FEB-08      20000
  10. 13-JAN-08      25000
  11. 27-DEC-09      20000
  12. 16-DEC-09      25000
  13. 10-DEC-09      18000
  14.  
  15. 8 ROWS selected.
  16.  
  17. SQL> DECLARE
  18.  2  SUMA INTEGER;
  19.  3  BEGIN
  20.  4  FOR a IN 0..12
  21.  5  LOOP
  22.  6  SELECT COUNT(SALARIO) INTO SUMA FROM EJEMPLO WHERE FECHA > '31-DEC-08' AND SUBSTR((TO_CHAR(FECHA, 'DD/MM/YY')), 4, 2) = a;
  23.  7  DBMS_OUTPUT.PUT_LINE('El mes :: '||a||' Tiene '||suma||' Registros');
  24.  8  END LOOP;
  25.  9  END;
  26. 10  /
  27. El mes :: 0 Tiene 0 Registros
  28. El mes :: 1 Tiene 2 Registros
  29. El mes :: 2 Tiene 1 Registros
  30. El mes :: 3 Tiene 0 Registros
  31. El mes :: 4 Tiene 0 Registros
  32. El mes :: 5 Tiene 0 Registros
  33. El mes :: 6 Tiene 0 Registros
  34. El mes :: 7 Tiene 0 Registros
  35. El mes :: 8 Tiene 0 Registros
  36. El mes :: 9 Tiene 0 Registros
  37. El mes :: 10 Tiene 0 Registros
  38. El mes :: 11 Tiene 0 Registros
  39. El mes :: 12 Tiene 3 Registros
  40.  
  41. PL/SQL PROCEDURE successfully completed.
  42.  
  43.  

Tenia tiempo que no tocaba PL/SQL
307  Programación / Bases de Datos / Re: SQL--Where fechas (Condición de fechas) en: 4 Marzo 2010, 21:35 pm
Parece que no soy la unica  :xD

No entiendo bien tu peticion tampoco...

Es algo como saber cuantos registros existen por cada mes en los 12 meses???? y imprimir algo como:

ENERO: 200 registros
FEBRERO: 300 registros
MARZO: 150 registros

ect....

Y eso de total de registros por 2 fechas? Seria como:

ENERO + FEBRERO : 500 registros...

Si tu peticion es mas o menos eso.. probablemente tenga que apoyarme en el uso de un poquito de PL y cursores  :rolleyes:  o a lo mejor no, dependera de tu explicacion de que requieres...

La DB es Oracle verdad?
308  Programación / Bases de Datos / Re: Registros duplicados en: 3 Marzo 2010, 19:54 pm
De nada  ;)
309  Programación / Bases de Datos / Re: Registros duplicados en: 3 Marzo 2010, 17:58 pm




SELECT
     EMPRESA.CIFNIF,
     CABALBARAN.CLIENTE,
     CLIENTES.NOMBRE,
     DETALBARAN.IDALBARAN,
     CABALBARAN.FECHA,
     SUM(DETALBARAN.CANTIDAD*DETALBARAN.PRECIO) AS "TOTAL_BRUTO",
SUM((DETALBARAN.CANTIDAD*DETALBARAN.PRECIO)*DETALBARAN.DESCUENTO/100)  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
    AND CABALBARAN.IDALBARAN=DETALBARAN.IDALBARAN
    AND CLIENTES.IDCLIENTE=CABALBARAN.CLIENTE
GROUP BY (EMPRESA.CIFNIF,  CABALBARAN.CLIENTE, CLIENTES.NOMBRE, DETALBARAN.IDALBARAN, CABALBARAN.FECHA )

310  Programación / Bases de Datos / Re: Saber con que tabla esta relacionada. en: 3 Marzo 2010, 16:49 pm
Dependera tus necesidades... pero al menos al partir de la 5.0.1 es mejor porque puedes tener procedimientos, crons adentro del motor, funciones, etc. Pero dependera si vas o no a dar uso de esto... al menos me consta que para MySQL 5.4.x, Oracle se empeno en mejorar sobremanera y optimizar los motores InnoDB para las consultas JOINS y Subconsultas.


Por cierto, te convendria crear un procedimiento y guardar la consulta ante expuesta, asi solo te basta con llamar el procedimiento para ver que FK tiene cual tabla:

Código
  1.  
  2. delimiter /
  3.  
  4. CREATE PROCEDURE procedimiento(IN tabla CHAR(30))
  5. BEGIN
  6.  
  7. SELECT FK.TABLE_NAME AS 'Nombre Tabla',
  8.   CU.COLUMN_NAME AS 'Columna Llave Foranea',
  9.   PK.TABLE_NAME AS 'Tabla Llave Primaria',
  10.   PT.COLUMN_NAME AS 'Columna Llave Primaria',
  11.   C.CONSTRAINT_NAME AS 'Entidad Relación'
  12. FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
  13.  INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
  14.    ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
  15.  INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
  16.    ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
  17.  INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
  18. ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
  19.  INNER JOIN( SELECT TC.TABLE_NAME, CU.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
  20. INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
  21.   ON TC.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
  22. WHERE TC.CONSTRAINT_TYPE = 'PRIMARY KEY'
  23.  ) PT
  24.    ON PT.TABLE_NAME = PK.TABLE_NAME
  25.  WHERE PK.TABLE_NAME = tabla
  26.  
  27. );
  28. /
  29.  
  30. delimiter ;
  31.  

Mas o menos algo asi... quisiera acomodartelo para ver si funciona pero ando en el trabajo  ;)  luego cada vez que quieras ver las Fk de una tabla.. llamas el procedimiento pasandole como parametro el nombre de la tabla que quieres ver.

CALL procedimiento(tu_tabla);
Páginas: 1 ... 16 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 ... 96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines