Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-06-2003
argon argon is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
argon Va por buen camino
Question Como cuento en esta consulta? -> URGENTE <-

Hola, Quisiera por favor que me ayudara alguien a realizar esta consulta, no he podido y es urgente:

Tengo una tabla que tiene estos campos:

Abscisa--|Código|--Alcantarilla
0.0--------17552-------- 24"
0.1--------17552-------- 24"
1.0--------17552-------- 24"
1.2--------17552--------2-24"
1.5--------17552--------2-24"
2.0--------17552-------- 24"
2.2--------17552--------2-24"
..... .......... ........... etcetera.

la consulta me debe generar la cantidad de alcantarillas que existen entre abscisas. p.e:

Abscisa--|Codigo|--Alcantarilla
1.0--------17552-------- 3
2.0--------17552-------- 5
..... .......... ........... etcetera.

el problema es que como hago para que la consulta cuente los registros que dicen 2-24" como dos(2) y no como uno, pues hasta el momento me genera el siguiente resultado:

Abscisa--|Codigo|--Alcantarilla
1.0--------17552--------3
2.0--------17552--------3(<- cuenta los registros 2-24" como
uno solo)
..... .......... ........... etcetera.

Gracias
Responder Con Cita
  #2  
Antiguo 19-06-2003
Aprendiz Aprendiz is offline
Miembro
 
Registrado: may 2003
Posts: 78
Poder: 22
Aprendiz Va por buen camino
Bueno creo que la cosa es bastante sencilla, debes hacer un
SUM multiplicado en la misma select por el numero de alcantarillas. Lo que no acabo de ver claro es lo del "2-24'', son dos campos diferentes? son uno solo compuesto?

Por qué no pones la select que tienes hecha para que la veamos y la complementemos.

Saludos
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender.
Responder Con Cita
  #3  
Antiguo 19-06-2003
argon argon is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
argon Va por buen camino
Ok aqui esta la consulta, no lo habia mencionado pero la tabla tambien tiene una consulta que se llama consecutivo que esta ahi como un nivel de agrupamiento de las abscisas. p.e:

codigo----abscisa----alcantarilla-----consecutivo
17552----1.0----------24"----------------1
17552----1.1----------24"----------------1
17552----1.2---------- 2- 24"------------1
17552----2.0---------- 2- 24"------------1
17552----2.1----------24"----------------2
17552----3.0----------24"----------------3
17552----3.1----------24"----------------3
17552----3.2----------24"----------------3
17552----3.3----------24"----------------3
17555----1.0----------24"----------------1
17555----1.3----------24"----------------1
17555----2.0----------24"----------------2
17555----2.1----------24"----------------2

el 2-24" es un campo compuesto que quiere decir que en esa abscisa hay dos(2) alcantarillas de 24"

SELECT Codigo,consecutivo, COUNT(Alcantarilla)
FROM "alcantarilla.db"
where ((abscisa<2)or(abscisa<3))
/////etc(segun las abscisas que tenga)//////
GROUP BY Codigo, consecutivo
ORDER BY codigo

Espero que si me haya hecho entender, no soy muy bueno redactando.
Nuevamente gracias por la ayuda.
Responder Con Cita
  #4  
Antiguo 20-06-2003
argon argon is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
argon Va por buen camino
el 2-24" es un campo compuesto que quiere decir que en esa abscisa hay dos(2) alcantarillas de 24"

consecutivo es una columna que sirve como agrupacion de abscisas.

SELECT Codigo,consecutivo, COUNT(Alcantarilla)
FROM "alcantarilla.db"
where ((abscisa<2)or(abscisa<3))
/////etc(segun las abscisas que tenga)//////
GROUP BY Codigo, consecutivo
ORDER BY codigo

se me ocurre que el campo alcantarilla podria ser descompuesto en dos, uno que tenga el tipo de alcantarilla y otro que tenga la cantidad, de esa manera si podria contarse con exactitud el numero de alcantarillas.
si a alguien se le ocurre algo mejor por favor escribalo.
Responder Con Cita
  #5  
Antiguo 25-06-2003
Aprendiz Aprendiz is offline
Miembro
 
Registrado: may 2003
Posts: 78
Poder: 22
Aprendiz Va por buen camino
A ver si tienes la posibilidad de dividir en dos el campo hazlo, es la mejor alternativa.

La otra sería utilizar las UDF's y extraer mediante una función los primeros carácteres del campo y mediante un CAST transformarlo en numeríco y multiplicarlo por el valor que quieres.

Como ves la segunda alternativa es más complicada te recomiendo la primera, con lo cual solo tendrias que hacer

SELECT Codigo,consecutivo, COUNT(Alcantarilla)*SUM(NUEVO_CAMPO)
FROM "alcantarilla.db"
where ((abscisa<2)or(abscisa<3))
/////etc(segun las abscisas que tenga)//////
GROUP BY Codigo, consecutivo
ORDER BY codigo

Saludos
__________________
[Aprendiz]: Por que siempre hay algo nuevo que aprender.
Responder Con Cita
  #6  
Antiguo 26-06-2003
argon argon is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
argon Va por buen camino
SI CREO QUE ES MEJOR DIVIDIR EL CAMPO.

GRACIAS APRENDIZ Y A TODOS QUIENES LEYERON MI INQUIETUD.
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


La franja horaria es GMT +2. Ahora son las 11:54:13.


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