Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2010
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cool Como hacer una instruccion SQL que se basa en otras sql

Hola a todos
Pues sucede que estoy migrando una BD de Access para MySQL, y me encontre con una dificultad que no se como solucionarla
Tal vez la solucion que use en access no fue la mas indicada, pero me resolvia el problema
El problema es que tengo una tabla donde en un campo se selecciona el tipo de PC (De Escritorio, Servidor o Portatil), y en un informe se hace un resumen donde se cuentan la cantidad de cada uno de ellos
La solucion que di en access fue:
- Crear una consulta filtrando por Servidores, otra basada en esa para totalizar la cantidad
- (y lo mismo para los otros tipos)
- Y otra consulta basada en esas 3, mas otros datos de la tabla para hacer el Informe

Pero cuando lo voy a hacer en MySQL, eso de las consultas anidadas me dejo "en blanco"

Es posible que lo que haya hecho es una "chapuza", pero agradeciaria que me indicaran como hacerlo en MySQL, o si no, una forma mejor de hacer lo que quiero
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #2  
Antiguo 06-09-2010
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Estas son las Consultas

En Access solo se usaban dos tipos de PC, pero la filosofia es la misma

1ra Consulta: Para servidores Profesionales
Código SQL [-]
SELECT Computadoras.IDCENTRO, Computadoras.Servidor 
FROM Computadoras 
WHERE (((Computadoras.Servidor)="Profesional"));

2da Consulta para Totalizarlos:
Código SQL [-]
SELECT [cc _ServidoresProf].IDCENTRO, Count([cc _ServidoresProf].Servidor) AS CuentaDeServidor 
FROM [cc _ServidoresProf] 
GROUP BY [cc _ServidoresProf].IDCENTRO;

3ra Consulta para PC servidores
Código SQL [-]
SELECT Computadoras.IDCENTRO, Computadoras.Servidor 
FROM Computadoras 
WHERE (((Computadoras.Servidor)="PC Server"));

4ta Consulta para totalizarlos:
Código SQL [-]
SELECT [cc _ServidoresPC].IDCENTRO, Count([cc _ServidoresPC].Servidor) AS CuentaDeServidor 
FROM [cc _ServidoresPC] 
GROUP BY [cc _ServidoresPC].IDCENTRO;

Y la 5ta que lo resume todo:
Código SQL [-]
SELECT Entidades.CodEnt, Entidades.NombreEntidad, Centros.IdCentros, Centros.NombreCentro, cc_CantServPC.CuentaDeServidor AS CantServPC, cc_CantServProf.CuentaDeServidor AS CantServProf 
FROM Entidades INNER JOIN (
(Centros LEFT JOIN cc_CantServPC ON Centros.IdCentros = cc_CantServPC.IDCENTRO) 
INNER JOIN cc_CantServProf ON Centros.IdCentros = cc_CantServProf.IDCENTRO) 
ON Entidades.CodEnt = Centros.CODENT 
GROUP BY Entidades.CodEnt, Entidades.NombreEntidad, Centros.IdCentros, Centros.NombreCentro, cc_CantServPC.CuentaDeServidor, cc_CantServProf.CuentaDeServidor;

Como ven parece un poco "enredado" al menos para mi
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes

Última edición por JoAnCa fecha: 06-09-2010 a las 17:46:50.
Responder Con Cita
  #3  
Antiguo 06-09-2010
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
El informe me debe salir así mas o menos:

Cant. Servidores
Centro Total de PC Profesional PC Server
-----------------------------------------------------
Centro 1 30 2 2
Centro 2 25 1 1
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
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
Debates sobre gestion de basa de datos dariel88060708 Debates 1 13-01-2010 09:50:35
¿Filas de 1 color y otras de otras En Synedit IDE Delphi? JXJ Varios 1 11-12-2008 00:01:28
como ejecutar una instruccion omy Varios 14 05-11-2007 21:25:59
como hacer para que no se modifique la basa de datos (o que me la restaure)?? JuanErasmo Firebird e Interbase 3 23-05-2006 18:32:51
como hago para ejecutar una instruccion de ms-dos? lazarous Varios 2 17-10-2005 13:39:04


La franja horaria es GMT +2. Ahora son las 22:10:18.


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