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

Select y distinct

Estas en el tema de Select y distinct en el foro de Mysql en Foros del Web. tengo esta consulta: $consulta = "SELECT * FROM TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d) ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta ...
  #1 (permalink)  
Antiguo 20/02/2006, 06:58
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 8 meses
Puntos: 0
Select y distinct

tengo esta consulta:


$consulta = "SELECT * FROM
TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d)
ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta = b.IdCiudadAlerta)
WHERE TIME(DATE_SUB(NOW(), INTERVAL 6 HOUR)) <= a.Hora ";


este es el resultado:


IdAlerta Fecha Hora IdOcurrencia Parcial IdAlerta IdCiudadAlerta IdOcurrencia DescOcurrencia IdCiudadAlerta NomCiudad
20 2006-02-16 14:30:00 6 N 20 3 6 Vientos Fuertes 3 Acebal
20 2006-02-16 14:30:00 6 N 20 4 6 Vientos Fuertes 4 Alvarez
19 2006-02-15 07:43:00 5 N 19 0 5 Lluvias Intensas con Ráfagas 0 25 de Mayo
19 2006-02-15 07:43:00 5 N 19 1 5 Lluvias Intensas con Ráfagas 1 9 de Julio
19 2006-02-15 07:43:00 5 N 19 3 5 Lluvias Intensas con Ráfagas 3 Acebal
18 2006-02-15 13:40:00 4 Y 18 2 4 Lluvias Intensas 2 Abasto
18 2006-02-15 13:40:00 4 Y 18 3 4 Lluvias Intensas 3 Acebal

y lo muestra asi:


FECHA Y HORA DE EMISION
2006-02-16
14:30:00

POR OCURRENCIA DE:Vientos Fuertes
AFECTANDO EL AREA DELIMITADA POR LAS SIGUIENTES LOCALIDADES : Acebal

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

FECHA Y HORA DE EMISION
2006-02-16
14:30:00

POR OCURRENCIA DE:Vientos Fuertes
AFECTANDO EL AREA DELIMITADA POR LAS SIGUIENTES LOCALIDADES : Alvarez


y yo lo que quiero es que no me muestre todos los registros repetidos,
que si las ciudades son distintas me la muestre en un solo registro.
quedando asi:

FECHA Y HORA DE EMISION
2006-02-16
14:30:00

POR OCURRENCIA DE:Vientos Fuertes
AFECTANDO EL AREA DELIMITADA POR LAS SIGUIENTES LOCALIDADES : Acebal, Alvarez


uso Distict, pero no se como utilizarlo, alguien me podria explicar??

gracias
  #2 (permalink)  
Antiguo 20/02/2006, 07:01
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 19 años, 2 meses
Puntos: 19
Podrías hacer una primera consulta por ocurrencias y luego otra por localidades.
  #3 (permalink)  
Antiguo 20/02/2006, 07:07
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 8 meses
Puntos: 0
Select y distinct en php

lo he probado, no tira error....pero me trae los mismos registros

SELECT DISTINCT* FROM
TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d)
ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta = b.IdCiudadAlerta)
WHERE TIME(DATE_SUB(NOW(), INTERVAL 6 HOUR)) <= a.Hora

no tendria que hacer una subconsulta, con los registros obtenidos???
  #4 (permalink)  
Antiguo 20/02/2006, 07:55
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
Sugerencia no repitas POSTs porfavor, otra cosa lo que quieres hacer tienes que hacerlo con el lenguaje de progrmacion que estes usando como te dije en el post anterior, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #5 (permalink)  
Antiguo 20/02/2006, 08:19
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 8 meses
Puntos: 0
Select y distinct

deadlykyo, no he repetido el tema, sino que lo he preguntado en el foro de php, y lo removieron al foro de mysql.

disculpa..
  #6 (permalink)  
Antiguo 20/02/2006, 08:48
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
creo que ya lo pusiste tambien en mysql, con el titulo error en select:
http://www.forosdelweb.com/f86/error-select-371905/
__________________
"El Conocimiento es de todos, no solo de algunos"
  #7 (permalink)  
Antiguo 20/02/2006, 08:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 8 meses
Puntos: 0
Select y Distinct

exacto, lo pregunte en el foro de mysql, como me dijiste que era un tema del lenguaje , lo pregunte en el foro de Php...y de ahi lo han movido nuevamente al foro de mysql....

pido disculpas nuevamente, pero yo no lo he movido..
  #8 (permalink)  
Antiguo 20/02/2006, 09:09
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
Ok no problem, solo que me parece raro generalmente cuando mueven algo de otro foro ponen que ha sido movido y me parece raro que el tuyo no diga nada, mmm bueno que mas da, me parece raro que te manden de nuevo aqui ya que lo que necesitas es mas php que mysql, veremos que podemos hacer, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #9 (permalink)  
Antiguo 20/02/2006, 09:16
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 8 meses
Puntos: 0
select y distinct

mira esto...en el foro de php, aparece como movido

http://www.forosdelweb.com/f18/

tenes razon, es un tema de php, y no se porque lo han movido.

saludos
  #10 (permalink)  
Antiguo 20/02/2006, 09:28
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
si me parece raro, es tal vez el titulo vieron y directo te lo mandaron aca, volviendo a tu problema, lo que quieres es que te muestre datos agrupados por hora y ocurrencia(vientos fuertes,Lluvias Intensas, etc) cierto o solamente es por horas
__________________
"El Conocimiento es de todos, no solo de algunos"
  #11 (permalink)  
Antiguo 20/02/2006, 09:35
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 8 meses
Puntos: 0
select y distinct

no...no es lo que quiero.

la consulta me esta mostrando, un registro por cada ciudad, o sea la fecha, hora y ocurrencia es la misma lo que cambia es la ciudad.

yo quiero que me muestre la fecha, la hora, la ocurrencia, y UNA O VARIAS CIUDADES.


se entiende??? este es el codigo en PHP..


$consulta = "SELECT DISTINCT * FROM
TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d)
ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta = b.IdCiudadAlerta)
WHERE TIME(DATE_SUB(NOW(), INTERVAL 6 HOUR)) <= a.Hora ";


$resaviso = mysql_query($consulta,$conex);

if ($resaviso)
{
$Num_filas = mysql_num_rows($resaviso);
$Num_campos = mysql_num_fields($resaviso);

echo "Cantidad de filas: ".$Num_filas."<br>";
//echo "Cantidad de Campos: ".$Num_campos."<br>";


while ($fila = mysql_fetch_array($resaviso))
{


if ($fila['Fecha'] == $hoy)
{
?>

<table width='85%' border='1'>
<tr>
<td><div align='center'><strong>FECHA Y HORA DE EMISION</strong></div></td>
<td><div align='center'><strong>VALIDEZ HASTA</strong></div></td>
</tr>
<tr>
<td><div align='center'><? echo $fila['Fecha']; ?></div></td>
<td> TRES (3) HORAS. posteriores a la emision</td>
</tr>

<tr>
<td><div align='center'><? echo $fila['Hora']; ?> HOA</div></td>
<td>&nbsp; </td>
</tr>
</table>
</td>
</tr>

<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>

<tr>
<td><div align='left'><b>POR OCURRENCIA DE:</b><? echo $fila['DescOcurrencia']; ?></div></td>
<td>&nbsp; </td>
</tr>

<tr>
<td>&nbsp;</td>
</tr>

<tr>
<td>&nbsp;</td>
</tr>

<? if ($fila['Parcial'] == 'N')
{
?>
<tr>
<td><div align='left'><b>AFECTANDO EL AREA DELIMITADA POR LAS SIGUIENTES LOCALIDADES :</b> <? echo $fila['NomCiudad']; ?>
</div></td><td>&nbsp; </td>
</tr>

<? }else{
?>
<tr>
<td><div align='left'><b>AFECTANDO PARCIALMENTE EL AREA DELIMITADA POR LAS SIGUIENTES LOCALIDADES :</b> <? echo $fila['NomCiudad']; ?>
</div></td><td>&nbsp; </td>
</tr>

<? }
?>



<tr>
<td>&nbsp;</td>
</tr>

<tr>
<td><p><b>---------------------------------------------------------------------------------------------------------------------------------------------------------------</b>-------------------------
</p>
</td>
</tr>

<tr>
<td>&nbsp;</td>
</tr>
</table>
<?
  #12 (permalink)  
Antiguo 20/02/2006, 09:58
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
ok, tonces lo que quieres es mostrar tus datos agrupados tomando en cuenta que sea la misma hora, ocurrencia y que se muestren todas las ciudades que sean en esa hora y ocurrencia, cierto??

P.D: ponlo tu codigo como php ([PHP]aqui tu codigo[PHP]) ya que ayuda a entender mas el codigo, al segunto tag le falta / .
__________________
"El Conocimiento es de todos, no solo de algunos"
  #13 (permalink)  
Antiguo 20/02/2006, 10:03
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 8 meses
Puntos: 0
Select y Distinct

exacto...eso es lo que quiero.

ejemplo:
Fecha:20-02-2006
Hora: 14:00
Ocurrencia: LLuvias
Ciudad: Rosario, La Plata, Chascomus
-----------------------------------------------

pero ni idea como hacerlo...si con distinct o con que??
  #14 (permalink)  
Antiguo 20/02/2006, 10:07
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
en realidad ya tu consulta sql ya esta bien ahi se queda, lo que hay que trabajar es como mostrar los datos, revisare un poco tu codigo y veremos que se puede hacer
__________________
"El Conocimiento es de todos, no solo de algunos"
  #15 (permalink)  
Antiguo 20/02/2006, 13:16
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
tal vez si intentas hacer dos consultas, una para recuperar las horas y ocurrencias iguales de un dia determinado y con eso por cada uno consultas y recuperas todas las ciudades para una hora y ocurrencia determinada, aqui te dejo una ideaa como seria:
Código PHP:
<?
$consulta1 
"SELECT a.hora, DescOcurrencia FROM
TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d)
ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta = b.IdCiudadAlerta)
WHERE TIME(DATE_SUB(NOW(), INTERVAL 6 HOUR)) <= a.Hora 
GROUP BY a.hora, DescOcurrencia "

$resaviso mysql_query($consulta1,$conex);
while (
$fila mysql_fetch_array($resaviso))
{
  
$consulta2 "SELECT NomCiudad FROM
  TAviso a INNER JOIN (TAvisoSeleccion b, TAvisoOcurrencia c,TAvisoCiudad d)
  ON (a.IdAlerta = b.IdAlerta AND a.IdOcurrencia=c.IdOcurrencia AND d.IdCiudadAlerta = b.IdCiudadAlerta)
  WHERE TIME(DATE_SUB(NOW(), INTERVAL 6 HOUR)) <= a.Hora AND a.hora='$fila[0]' AND DescOcurrencia='$fila[1]'  "

  
$resaviso2 mysql_query($consulta2,$conex);
  
$Num_filas2 mysql_num_rows($resaviso2);
  


<
tr>
<
td><div align='left'><b>AFECTANDO EL AREA DELIMITADA POR LAS SIGUIENTES LOCALIDADES :</b
<? 
while (
$fila2 mysql_fetch_row($resaviso2))
    echo 
$fila2[0]", "
?>
</div></td><td>&nbsp; </td>
</tr>
cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #16 (permalink)  
Antiguo 22/02/2006, 07:34
 
Fecha de Ingreso: febrero-2004
Mensajes: 65
Antigüedad: 20 años, 8 meses
Puntos: 0
select y distinct

exelente....es lo que necesitaba, que segun la hora y ocurrencia me muestre las ciudades seleccionadas. muchisimasss gracias...
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 22:58.