PDA

Ver la Versión Completa : Como cuento en esta consulta? -> URGENTE <-


argon
19-06-2003, 16:46:51
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

Aprendiz
19-06-2003, 18:13:32
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

argon
19-06-2003, 20:39:11
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.

argon
20-06-2003, 17:32:53
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.

Aprendiz
25-06-2003, 19:05:00
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

argon
26-06-2003, 22:23:43
SI CREO QUE ES MEJOR DIVIDIR EL CAMPO.

GRACIAS APRENDIZ Y A TODOS QUIENES LEYERON MI INQUIETUD.