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
  #21  
Antiguo 08-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola de nuevo,
estoy haciendo unas pruebas, y la verdad, no me están convenciendo. A no ser que esté haciendo algo mal, y que agradecería que me lo indicarais si alguien lo sabe.

Mi intención es sacar una consulta con las poblaciones y los estados civiles de los clientes. La tabla es de clientes, en donde hay id, nombre, población y estado civil. La tabla tiene 16.500 registros. Existen 4 estados civiles ,a saber: CASADO, SOLTERO, SIN DEF. y VIUDO ( tened en cuenta que no está en producción, son pruebas ).

Una primera consulta sería
Código SQL [-]
select poblacion,
sum ( case when estadocivil='CASADO' then 1 ELSE 0 END) AS CASADO,
sum ( case when estadocivil='SOLTERO' then 1 ELSE 0 END) AS SOLTERO,
sum ( case when estadocivil='SIN DEF.' then 1 ELSE 0 END) AS SINDEF,
sum ( case when estadocivil='VIUDO' then 1 ELSE 0 END) AS VIUDO
from cliente
group by poblacion

Respuesta perfecta, tiempo de consulta aprox 3 segundos.

Utilizando WITH

Código SQL [-]
 with
  estadosciviles as (
    select estadocivil as EC, count(idcliente) as NUMERO
    from cliente
    group by estadocivil)
    select poblacion,
    ECC.numero as CASADOS,
    ECS.numero as SOLTEROS,
    ECSD.numero as SINDEF,
    ECV.numero as VIUDOS
    from cliente  C
    left join estadosciviles ECC on C.estadocivil=ECC.EC
    and ECC.EC='CASADO'
    left join estadosciviles ECS on C.estadocivil=ECS.EC
    and ECS.EC='SOLTERO'
    left join estadosciviles ECSD on C.estadocivil=ECSD.EC
    and ECSD.EC='SIN DEF.'
    left join estadosciviles ECV on C.estadocivil=ECV.EC
    and ECV.EC='VIUDO'

Resultado inexacto. Me devuelve más de una fila por población, y datos un poco extraños.
Tiempo de respuesta. Me deja el equipo cuajado un par de minutos al menos.

Me da la sensación de que estoy haciendo mal la consulta. A ver si alguien me puede poner luz...

Gracias
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #22  
Antiguo 08-04-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Si en tu primero consulta, sencilla, ya obtienes el resultado el resultado que estás buscando, y en un tiempo óptimo, ¿ porqué te quieres complicar la vida sacándolo mediante CTE's ?.

NOTA: Para agilizar un poco más esa primera consulta, puedes añadir un índice por población (de esa forma facilitas la agrupación por ese campo).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #23  
Antiguo 08-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Cita:
Empezado por guillotmarc Ver Mensaje
Hola.

Si en tu primero consulta, sencilla, ya obtienes el resultado el resultado que estás buscando, y en un tiempo óptimo, ¿ porqué te quieres complicar la vida sacándolo mediante CTE's ?.

NOTA: Para agilizar un poco más esa primera consulta, puedes añadir un índice por población (de esa forma facilitas la agrupación por ese campo).

Saludos.
Hola,
estoy comparando la manera de obtener los datos, con la primera consulta ( que la creo dinámicamente con una procedure ) o con CTE's.
La segunda opción me está dando un rendimiento muy pobre, de ahí mi consulta de si estoy haciendolo bien o no.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #24  
Antiguo 08-04-2011
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Talking Sugerencia ...

Cita:
Empezado por guillotmarc Ver Mensaje
Hola.
Si en tu primero consulta, sencilla, ya obtienes el resultado el resultado que estás buscando, y en un tiempo óptimo, ¿ porqué te quieres complicar la vida sacándolo mediante CTE's ?.
No estoy muy de acuerdo en que utilizar CTE's te compliques la vida ... hagamos lo siguiente:

fjcg02 puedes poner la estructura de tus tablas (algo así como lo que hizo amerika111, en un archivo gpeg como el que ella subio). Después hacemos el ejercicio y verán que es muy fácil.

El secreto está primero en programar la "tabla" que te servirá de pivote ... posteriormente lo único que tienes que hacer es llamarla las veces que necesites dependiendo de los "conceptos" que quieras que aparezcan en las columnas ... ¿me explico?.

Saludos
Gerardo Suárez Trejo

Última edición por Gallosuarez fecha: 08-04-2011 a las 16:51:06. Razón: Corregir ...
Responder Con Cita
  #25  
Antiguo 08-04-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Cita:
Empezado por Gallosuarez Ver Mensaje
No estoy muy de acuerdo en que utilizar CTE's te compliques la vida ... hagamos lo siguiente:
Está claro que la vida no te la complican las herramientas (CTE's, subconsultas, vistas, SP's, etc. ...) sino que para eso ya nos bastamos nosotros mismos, con el uso que damos a estas herramientas.

En este caso tan sencillo parece que recurrir a CTE's es como intentar matar mosquitos a cañonazos.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 08-04-2011 a las 17:41:54.
Responder Con Cita
  #26  
Antiguo 08-04-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Cita:
Empezado por fjcg02 Ver Mensaje
Hola,
estoy comparando la manera de obtener los datos, con la primera consulta ( que la creo dinámicamente con una procedure ) o con CTE's.
La segunda opción me está dando un rendimiento muy pobre, de ahí mi consulta de si estoy haciendolo bien o no.
¿ Porqué necesitas construir dinámicamente la primera consulta ?. ¿ El número de columnas no es siempre fijo ?.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #27  
Antiguo 08-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,
respondiendo por partes.
1.- Estoy comparando la forma en la que genero las consultas tipo pivot con la forma que expone Gallosuarez ( WITH ).
2.- Obviamente, el problema surge cuando el nº de columnas no es fijo. Este dato es importante. Si no fuera por este pequeño detalle, no tendríamos que resolver nada.
3.- Cuando no conozco algo, empiezo por pruebas sencillas. De no ser así, difícilmente podré sacar conclusiones válidas. Ya me pondrán los usuarios pruebas difíciles, que para eso están.
4.- La estructura de mi única tabla de la que obtengo datos es la que he comentado :
- idcliente
- nombre
- Poblacion
- Estadocivil
- ... no ocupan el resto de campos.

Enunciado del problema: Dígame ud. cuantas personas hay por estado civil en cada una de las poblaciones.
Código SQL [-]
Poblacion    CASADOS SOLTEROS VIUDOS NOSABENOCONTESTA
Bilbao             5            7            3          50
Barakaldo        10          20           6           0
Zamudio          0            30          50          9
...

Vale, es un caso fácil, pero supongamos que no sabemos cuantos estados civiles existen.
El resto de la historia ya la conoceis. Soy todo 'oidos' a ver si consigo aprender cómo funcionan los CTE's. Estoy esperando esos tutoriales ...

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #28  
Antiguo 08-04-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
no pues sigo en las mismas, ya hasta regañada sali,


trate de hacerlo con lo de CTE's pero nada no se como utilizar lo que me han comentado del case o la subconsulta

Código SQL [-]
with tabla as
(select PAGOS_NOMINA_DET.PAGO_NOMINA_ID, PAGOS_NOMINA_DET.CONCEPTO_NO_ID,CONCEPTOS_NO.NOMBRE,PAGOS_NOMINA_DET.IMPORTE,EMPLEADO_ID FROM PAGOS_NOMINA_DET  INNER JOIN  CONCEPTOS_NO
on CONCEPTOS_NO.CONCEPTO_NO_ID = PAGOS_NOMINA_DET.CONCEPTO_NO_ID  )
SELECT (NOMBRE from tabla WHERE ) FROM tabla
select IMPORTE
       (SELECT IMPORTE from tabla where CONCEPTO_NO_ID =104) as 'SALARIO MIN'
FROM tabla
Responder Con Cita
  #29  
Antiguo 09-04-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Código SQL [-]
with tabla as
(select PAGOS_NOMINA_DET.PAGO_NOMINA_ID, PAGOS_NOMINA_DET.CONCEPTO_NO_ID,CONCEPTOS_NO.NOMBRE,PAGOS_NOMINA_DET.IMPORTE,EMPLEADO_ID FROM PAGOS_NOMINA_DET  INNER JOIN  CONCEPTOS_NO
on CONCEPTOS_NO.CONCEPTO_NO_ID = PAGOS_NOMINA_DET.CONCEPTO_NO_ID  )

select IMPORTE
       (SELECT IMPORTE from tabla where CONCEPTO_NO_ID =104) as 'SALARIO MIN'
FROM tabla
Responder Con Cita
  #30  
Antiguo 09-04-2011
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Calentando motores ...

fjcg02:

Muy bien ... ahora ya nos estamos entendiendo ... bueno pues manos a lo obra:

Lo primero que hay que notar es que solo tienes una solo tabla, por lo que de ahí vamos a obtener el pivote ... y del pivote vamos a obtener nuestro resultado final. Por otro lado, es mejor empezar con un caso pequeño (donde los conceptos son fijos). Posteriormente nos movemos hacia un caso más difícil, ¿vale?.

Corre esta sentencia primero (este sería nuestro pivote). Sean benévolos conmigo a lo mejor tengo errores en el nombre de un tabla/campo, etc, etc. Necesito que me digas si funciona correctamente dicha sentencia.
Código SQL [-]
SELECT 
  POBLACION,
  ESTADOCIVIL,
  COUNT(*) AS CANTIDAD
FROM CLIENTE
GROUP BY POBLACION, ESTADOCIVIL

Despues si todo esto se ejecutó sin errores (doy por hecho que así es), creo mi tabla principal donde aparecerán los conceptos.
Código SQL [-]
WITH PIVOTE AS (
  SELECT 
    POBLACION,
    ESTADOCIVIL,
    COUNT(*) AS CANTIDAD
  FROM CLIENTE
  GROUP BY POBLACION, ESTADOCIVIL
)
SELECT
 P.POBLACION,
 COALESCE(P_CASADOS.CANTIDAD, 0) AS CASADOS,
 COALESCE(P_SOLTEROS.CANTIDAD, 0) AS SOLTEROS
FROM PIVOTE P
  LEFT JOIN PIVOTE P_CASADOS
    ON P.POBLACION = P_CASADOS.POBLACION
    AND P_CASADOS.ESTADOCIVIL = 'Casado'
  LEFT JOIN PIVOTE P_SOLTEROS
    ON P.POBLACION = P_SOLTEROS.POBLACION
    AND P_SOLTEROS.ESTADOCIVIL = 'Soltero'
    .
    .

Espero que esto despeje un poco sus dudas. Porqué decimos que esta forma de solucionar el problema es sumamente eficiente, porque la tabla "pivote" solo se ejecuta una sola vez, sin importar cuantos conceptos se agreguen después. Otra cosa que hay que hacer notar es el uso correcto de índices. En este caso no sé si haya indices, sino no los hay, la sentencia pivote tendrá que recorrer toda la tabla (aunque solo sea una solo vez).

Saludos,
Gerardo Suárez Trejo
Responder Con Cita
  #31  
Antiguo 09-04-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
La verdad es que las CTE son interesantes, no las conocía (aún sigo con Firebird 2.0). Pero no parece que sirvan para solventar el problema que tenemos, puesto que al final, con los datos de la CTE acabas haciendo otra consulta, y esa no puede tener un número variable de columnas. Así que las CTE no parecen una alternativa al PIVOT. Al menos no parecen una alternativa mejor que una simple consulta con subconsultas o CASE's.

En el caso de que tengamos un número variable de columnas, sigo sin ver otra solución que la de construir dinámicamente la consulta.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #32  
Antiguo 10-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,
gracias por responder. He de decir que de la sentencia que ejecuto, me sorprenden dos cosas.
1.- La respuesta tarda muchísimo.
2.- EL resultado no es el que deseo. Me repite algunas poblaciones, por lo que no puedo dar por bueno el resultado.

la sentencia es la que me has comentado, Gallosuarez

Código SQL [-]
with pivote as (select poblacion, estadocivil, count(idcliente)  as cantidad
from cliente
group by poblacion, estadocivil
)

SELECT
 P.POBLACION,
 COALESCE(P_CASADOS.CANTIDAD, 0) AS CASADOS,
 COALESCE(P_SOLTEROS.CANTIDAD, 0) AS SOLTEROS
FROM PIVOTE P
  LEFT JOIN PIVOTE P_CASADOS
    ON P.POBLACION = P_CASADOS.POBLACION
    AND P_CASADOS.ESTADOCIVIL = 'CASADO'
  LEFT JOIN PIVOTE P_SOLTEROS
    ON P.POBLACION = P_SOLTEROS.POBLACION
    AND P_SOLTEROS.ESTADOCIVIL = 'SOLTERO'

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #33  
Antiguo 10-04-2011
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Yo hago algo parecido y me toca que construirlo desde delphi, yo hago algo así como esto:

Código Delphi [-]

   sql := '';
   while not QConceptos.Eof do
   begin
      if sql <> '' then
        sql := sql + ',';
      Concepto := QConceptos.FieldByName('Concepto').AsString;
      sql := sql + ' Case when Campo = ' + QuotedStr(Concepto) + ' THEN campoimporte else 0 end as ' + Concepto
      QConceptos.Next;
   end;
  
   sql := 'Select Id_empleado, ' +  sql + ' from ....'


Donde el query QConceptos es el siguiente:
Código SQL [-]

   Select distinct Concepto from Conceptos


Todo esto lo hago sin comprobar, es solo para dar una idea de como lo hago.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"

Última edición por RONPABLO fecha: 10-04-2011 a las 20:07:50.
Responder Con Cita
  #34  
Antiguo 10-04-2011
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Cita:
Empezado por guillotmarc Ver Mensaje
En mi opinión os estáis complicando mucho. Solucionarlo con subconsultas normalmente es bastante sencillo (claro que solo se puede hacer cuando el nº de columnas está prefijado de antemano).

Sería algo del tipo :

Código SQL [-]
select mes
          (select sum(unidades) from ventas where ventas.mes = meses.mes and producto = 'A') as ventas_A,
          (select sum(unidades) from ventas where ventas.mes = meses.mes and producto = 'B') as ventas_B,
          (select sum(unidades) from ventas where ventas.mes = meses.mes and producto = 'C') as ventas_C 
from meses

Saludos.

Viendo esta respuesta creo que combinándola con mi respuesta anterior podría también funcionar muy bien.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #35  
Antiguo 12-04-2011
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Talking

Cita:
Empezado por fjcg02 Ver Mensaje
Hola,
gracias por responder. He de decir que de la sentencia que ejecuto, me sorprenden dos cosas.
1.- La respuesta tarda muchísimo.
2.- EL resultado no es el que deseo. Me repite algunas poblaciones, por lo que no puedo dar por bueno el resultado.
fjcg02:

1.- ¿Cual es el plan que está utilizando la sentencia? ¿te dice si utiliza índices?
2.- No, veo porqué la sentencia podría repetir algunas poblaciones, en todo caso me imagino que el problema puede ser que no haya consistencia en los datos que contiene tu tabla, ¿me explico?

¿Podrías subir una archivo .zip que contenga las sentencias INSERT de dicha tabla (al menos los campos que nos interesan en este ejercicio? (solo si puedes, claro), me gustaría echarle un vistazo a esos datos. Por otro lado, veo que tu tabla no está normalizada (no digo que sea malo o bueno, todo depende de la particularidades y necesidades de cada proyecto) ¿Existe alguna razón de tu parte para que hayas diseñado así dicha tabla?

Estoy en espera de tu respuesta ...

Saludos,
Gerardo Suárez Trejo
Responder Con Cita
  #36  
Antiguo 19-04-2011
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Perdon si es que no estoy en el tema

Pero existen unos componentes llamados Devexpress (PivotGrid) , con eso tienes solucionados todos los problemas de este tipo

Al menos a mi me ha funcionado , no tienes que hacer nada complicado solo la simple consulta y el componente hace al resto
__________________
IVAND
Responder Con Cita
  #37  
Antiguo 19-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,
perdonad que no haya respondido antes.

Todos los puntos que indica GalloSuarez son importantes a la hora de ejecutar la consulta. A saber, índices, normalización de tablas, ....

Independientemente de todos ellos, bajo mi modesta opinión, las dos consultas deberían ser de parecido rendimiento, segundo arriba segundo abajo, ya que usan el mismo origen de datos para extraer los resultados. Igual de optimizados o sin optimizar.

No sé si tendré tiempo para proporcionaros más datos en cuanto al plan de ejecución, ... , intentaré sacarlos.
No os puedo proporcionar los registros de la BBDD ya que son reales, de producción.

Respecto a los componentes de Devexpress-PivotGrid, si alguien está dispuesto a financiar el proyecto, pues podría proporcionarme una licencia legal para que pueda utilizarlos

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #38  
Antiguo 19-04-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Cita:
Empezado por fjcg02 Ver Mensaje
Hola,
Respecto a los componentes de Devexpress-PivotGrid, si alguien está dispuesto a financiar el proyecto, pues podría proporcionarme una licencia legal para que pueda utilizarlos
Prueba esta variante open-source.

http://sourceforge.net/projects/fxds/

NOTA: ¿ Puedes decir porqué quieres usar CTE's ?, para este caso concreto sigo sin ver ninguna ventaja respecto a las subconsultas (y para el optimizador del motor de Firebird está claro que le resulta bastante más sencillo optimizar las subconsultas).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #39  
Antiguo 19-04-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Si quieres usar el mismo TDecisionCube integrado en Delphi, aquí tienes información para enlazarlo con Datasets que no provengan de BDE.

http://edn.embarcadero.com/article/27848

Y aquí tienes como compilar este mismo TDecisionCube propio de Delphi en versiones actuales de Delphi.

http://www.bobswart.nl/weblog/Blog.aspx?RootId=5:2050
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #40  
Antiguo 20-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Cita:
Empezado por guillotmarc Ver Mensaje

NOTA: ¿ Puedes decir porqué quieres usar CTE's ?, para este caso concreto sigo sin ver ninguna ventaja respecto a las subconsultas (y para el optimizador del motor de Firebird está claro que le resulta bastante más sencillo optimizar las subconsultas).

Saludos.
Ya lo comenté ( eso creo ). Estoy jugando para ver las posibilidades, ya sé que no es el caso perfecto para probar. Si no sé hacer integrales, no voy a ponerme a hacer integrales diferenciales de cuarto grado... Pasito a pasito.

Gracias por los otros tres links, le echaré un vistazo.

Por otro lado, no es que saque chispas a los motores en cuanto a que utilizo los recursos más rebuscados, pero sí me gusta saber que existen por si en un futuro puedo aplicarlos en algún caso. Se todas maneras, soy de los que opino que recursos 'raros' los mínimos. Buen diseño de datos, buena elección de índices, y resultados rapiditos para los usuarios.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
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
Consulta con Filas en Columnas afxe SQL 3 30-01-2011 14:52:18
Consulta de Filas y Columnas mjjj SQL 1 19-02-2010 22:24:36
Filas y Columnas pmcastilla Varios 2 07-12-2007 20:22:01
ocultar filas o columnas karla Servers 1 10-08-2006 20:03:18
Filas a columnas nightynvid MS SQL Server 0 31-05-2006 16:22:44


La franja horaria es GMT +2. Ahora son las 00:14:21.


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