Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

problema con sentencia sql

Estas en el tema de problema con sentencia sql en el foro de Bases de Datos General en Foros del Web. hola todos ten gon un problema con una consulta en sql el cuial se tratade cables de fibra optica y este me deberia mostrar en ...
  #1 (permalink)  
Antiguo 25/05/2011, 10:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Información problema con sentencia sql

hola todos ten gon un problema con una consulta en sql el cuial se tratade cables de fibra optica y este me deberia mostrar en la miosma fila de la consulta el numero de cable la ciudad el sitio la capacidad y por cada cable me deberia mostrar los hilos libres y ocupados al hacer la consulta contando los ocupados esta me muestra los todos los cables co los hilos ocupados y los cables con algunos hilos ocupados y otos libres pero no me muestra los cables con todos los hilos libres y no le he podido encontrar el error agradesco su ayuda este es el codigo
SELECT Tabla.[CABLE REMARC] AS [Numero remarcado], Tabla.[CABLE ANTER] AS [Numero anterior], Tabla.[CAP CABLE] AS Capacidad, Count(Tabla.ESTADO_HILO) AS Ocupados, Tabla.[CAP CABLE]-Count(Tabla.ESTADO_HILO) AS Libres, Tabla.CIUDAD AS Ciudad, Tabla.SITIO_ETB AS [Sitio ETB A], Tabla.SITIO_ETB2 AS [Sitio ETB B], Tabla.TRONCAL AS Troncal, Tabla.ESTADO_HILO AS Estado, (Count(Tabla.ESTADO_HILO)*100)/Tabla.[CAP CABLE] AS [% - Porcentaje de ocupación]
FROM [BASE ODF CABLES ACCESO] AS Tabla
WHERE (((Tabla.[CABLE REMARC]) Like '7[0]###' Or (Tabla.[CABLE REMARC]) Like '7[1]###' Or (Tabla.[CABLE REMARC]) Like '8[0]###'))
GROUP BY Tabla.[CABLE REMARC], Tabla.[CABLE ANTER], Tabla.[CAP CABLE], Tabla.CIUDAD, Tabla.SITIO_ETB, Tabla.SITIO_ETB2, Tabla.TRONCAL, Tabla.ESTADO_HILO
HAVING (((Tabla.CIUDAD)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![txt_Ciudad]) AND ((Tabla.SITIO_ETB)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioA]) AND ((Tabla.SITIO_ETB2)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioB]) AND ((Tabla.ESTADO_HILO)="Ocupado")) OR (((Tabla.CIUDAD)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![txt_Ciudad]) AND ((Tabla.SITIO_ETB)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioB]) AND ((Tabla.SITIO_ETB2)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioA]) AND ((Tabla.ESTADO_HILO)="Ocupado"))
ORDER BY (Count(Tabla.ESTADO_HILO)*100)/Tabla.[CAP CABLE];
  #2 (permalink)  
Antiguo 26/05/2011, 01:14
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 8 años, 7 meses
Puntos: 89
Respuesta: problema con sentencia sql

Siponeslasentenciamasestructuradayexplicasunpocotu modelodedatosseriatodomuchomasfacilparatodos.

Al hacer una pregunta deberías ponerte en el lugar de la gente que va a responder e intentar que no les cueste leer tu post y dejarlo todo más claro.
  #3 (permalink)  
Antiguo 26/05/2011, 07:30
 
Fecha de Ingreso: mayo-2011
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: problema con sentencia sql

problema con consulta sql

--------------------------------------------------------------------------------
hola todos ten gon un problema con una consulta en sql el cuial se tratade cables de fibra optica y este me deberia mostrar en la miosma fila de la consulta el numero de cable la ciudad el sitio la capacidad y por cada cable me deberia mostrar los hilos libres y ocupados al hacer la consulta contando los ocupados esta me muestra los todos los cables co los hilos ocupados y los cables con algunos hilos ocupados y otos libres pero no me muestra los cables con todos los hilos libres y no le he podido encontrar el error agradesco su ayuda este es el codigo
SELECT Tabla.[CABLE REMARC] AS [Numero remarcado], Tabla.[CABLE ANTER] AS [Numero anterior], Tabla.[CAP CABLE] AS Capacidad, Count(Tabla.ESTADO_HILO) AS Ocupados, Tabla.[CAP CABLE]-Count(Tabla.ESTADO_HILO) AS Libres, Tabla.CIUDAD AS Ciudad, Tabla.SITIO_ETB AS [Sitio ETB A], Tabla.SITIO_ETB2 AS [Sitio ETB B], Tabla.TRONCAL AS Troncal, Tabla.ESTADO_HILO AS Estado, (Count(Tabla.ESTADO_HILO)*100)/Tabla.[CAP CABLE] AS [% - Porcentaje de ocupación]
FROM [BASE ODF CABLES ACCESO] AS Tabla
WHERE (((Tabla.[CABLE REMARC]) Like '7[0]###' Or (Tabla.[CABLE REMARC]) Like '7[1]###' Or (Tabla.[CABLE REMARC]) Like '8[0]###'))
GROUP BY Tabla.[CABLE REMARC], Tabla.[CABLE ANTER], Tabla.[CAP CABLE], Tabla.CIUDAD, Tabla.SITIO_ETB, Tabla.SITIO_ETB2, Tabla.TRONCAL, Tabla.ESTADO_HILO
HAVING (((Tabla.CIUDAD)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![txt_Ciudad]) AND ((Tabla.SITIO_ETB)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioA]) AND ((Tabla.SITIO_ETB2)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioB]) AND ((Tabla.ESTADO_HILO)="Ocupado")) OR (((Tabla.CIUDAD)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![txt_Ciudad]) AND ((Tabla.SITIO_ETB)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioB]) AND ((Tabla.SITIO_ETB2)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioA]) AND ((Tabla.ESTADO_HILO)="Ocupado"))
ORDER BY (Count(Tabla.ESTADO_HILO)*100)/Tabla.[CAP CABLE];


Numero remarcado Numero anterior Capacidad Ocupados Libres
70902 70902 96 2 94
70361 3587 12 4 8
70042 3031/0079/3012 36 12 24
70313 70313 36 34 2
este es la consulta que me bota pero si el cable 70902 notiene algunhilo ocupadoeste nosale

y mi tabla esta diseñada con los siguientes campos
CAP CABLE VA LA CANTIDAD DE HILOS PUEDE SER 36,48,96
LONGITUD_CABLE en este el tamaño del cable
ESTADO_HILO si el hilo esta libre o ocupado
ADVERTENCIA
FECHA CONSTRUCCION CABLE
CABLE REMARC numero del cable actual
CABLE ANTER numero del cable anterior
F O
USO DE FIBRA
CIUDAD
  #4 (permalink)  
Antiguo 26/05/2011, 07:51
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 8 años, 7 meses
Puntos: 89
Respuesta: problema con sentencia sql

Aunque sigue muy desestructurado el post y sólo hablas de una tabla (¿sólo tienes una tabla? ¿Cómo ves el estado de todos y cada uno de los hilos del cable?)

Veo que tienes en el HAVING (no sé por qué no pones las condiciones en el WHERE) algunos "estado = "Ocupado"", por eso no te saldrán los libres.
  #5 (permalink)  
Antiguo 26/05/2011, 08:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 9 meses
Puntos: 2653
Respuesta: problema con sentencia sql

Para que comprendas mejor, lo que Heimish2000 te quiere decir con ponerlo más estructurado es que postees el código SQL de esta forma, que permite ver bien cómo está armado:
Código SQL:
Ver original
  1. SELECT
  2.     Tabla.[CABLE REMARC] AS [Numero remarcado],
  3.     Tabla.[CABLE ANTER] AS [Numero anterior],
  4.     Tabla.[CAP CABLE] AS Capacidad,
  5.     COUNT(Tabla.ESTADO_HILO) AS Ocupados,
  6.     Tabla.[CAP CABLE]-COUNT(Tabla.ESTADO_HILO) AS Libres,
  7.     Tabla.CIUDAD AS Ciudad,
  8.     Tabla.SITIO_ETB AS [Sitio ETB A],
  9.     Tabla.SITIO_ETB2 AS [Sitio ETB B],
  10.     Tabla.TRONCAL AS Troncal,
  11.     Tabla.ESTADO_HILO AS Estado,
  12.     (COUNT(Tabla.ESTADO_HILO)*100)/Tabla.[CAP CABLE] AS [% - Porcentaje de ocupación]
  13. FROM
  14.     [BASE ODF CABLES ACCESO] AS Tabla
  15. WHERE
  16.     (((Tabla.[CABLE REMARC]) LIKE '7[0]###'
  17.     OR
  18.     (Tabla.[CABLE REMARC]) LIKE '7[1]###'
  19.     OR
  20.     (Tabla.[CABLE REMARC]) LIKE '8[0]###'))
  21. GROUP BY
  22.     Tabla.[CABLE REMARC],
  23.     Tabla.[CABLE ANTER],
  24.     Tabla.[CAP CABLE],
  25.     Tabla.CIUDAD,
  26.     Tabla.SITIO_ETB,
  27.     Tabla.SITIO_ETB2,
  28.     Tabla.TRONCAL,
  29.     Tabla.ESTADO_HILO
  30. HAVING
  31.     (((Tabla.CIUDAD)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![txt_Ciudad])
  32.     AND
  33.     ((Tabla.SITIO_ETB)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioA])
  34.     AND
  35.     ((Tabla.SITIO_ETB2)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioB])
  36.     AND
  37.     ((Tabla.ESTADO_HILO)="Ocupado"))
  38.     OR
  39.     (((Tabla.CIUDAD)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![txt_Ciudad])
  40.     AND
  41.     ((Tabla.SITIO_ETB)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioB])
  42.     AND
  43.     ((Tabla.SITIO_ETB2)=[Formularios]![Ini_Cables BOGOTA SitioETB Acceso/Transp]![cmb_SitioA])
  44.     AND
  45.     ((Tabla.ESTADO_HILO)="Ocupado"))
  46. ORDER BY
  47.     (COUNT(Tabla.ESTADO_HILO)*100)/Tabla.[CAP CABLE];
De esta forma si se puede ver que es lo que se supone que hace, o al menos intentar entenderlo.
También sería bueno ver la estructura de tablas y eventualmente cómo salen las consultas reales (alguna imagen de tablas).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 26/05/2011, 09:55
 
Fecha de Ingreso: mayo-2011
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: problema con sentencia sql

esta es la impresion de la consulta

estos son los campos de la tabla

esta es la tabla

aqui estan las imagenes
  #7 (permalink)  
Antiguo 26/05/2011, 10:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 9 meses
Puntos: 2653
Respuesta: problema con sentencia sql

Me temo que tienes demasiados pocos posts para que el sistema te deje poner links.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sentencia, sql, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:08.