![]() |
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 |
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 |
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. |
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. |
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 |
SI CREO QUE ES MEJOR DIVIDIR EL CAMPO.
GRACIAS APRENDIZ Y A TODOS QUIENES LEYERON MI INQUIETUD. |
La franja horaria es GMT +2. Ahora son las 05:51:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi