Donde esta mi error =(

Iniciado por RedZer, 9 Diciembre 2010, 05:33 AM

0 Miembros y 1 Visitante están viendo este tema.

RedZer

miren resulta que quiero agrupar y contar 2 campos que tengan el mismo resultado en este caso mi campo se llama diags_clave ok pero antes de eso yo busco en mi tabla jqcalendar una fecha de inicio y una fecha final que aya digitado el usuario si se encuentra ambas fechas dentro de mi tabla jqcalendar genero otra consulta para contar mi campo diags_clave el problema es que me los cuenta pero no me los agrupa por ejemplo el campo diags_clave tiene 2 valores iguales los cuales son A000 se su pone que me me los deberia de agrupar los que tengan a A000 y mostrar solo un resultado de ellos, pero no me muestra eso su pongamos que en mi tabla tengo agregado 2 A000 pues me muestra los 2 en ves de agruparme los 2 resultados en uno solo yo quiero que haga lo si guiene
A000=2
poero me ase esto
A00=1
A00=1
mi codigo es el siguiente

Código (php) [Seleccionar]

conectar();
$jcalendar=mysql_query("select * FROM jqcalendar  WHERE StartTime   BETWEEN '$ini' AND '$fin' AND asistencia='1' GROUP BY Subject ");
desconectar();

if (mysql_num_rows($jcalendar)>0)
{
while ($rowj=mysql_fetch_array($jcalendar))
{

//separo la ficha que se extrae de la tabla jcalendar
   $ficha=$rowj[1];
   $partes=explode('-',$ficha);
   $aa=$partes[0];
   $bb=$partes[1];


conectar();
$reporte=mysql_query("select  diags_clave, count(diags_clave)as cuenta  FROM reporte  WHERE ficha='$aa'  and codigo='$bb'  GROUP BY diags_clave ");
desconectar();

while ($row=mysql_fetch_array($reporte))
{


echo $row['cuenta']."<br>";
}

}//cierro el segundo while
               

}//cierro el if 



llevo dias desarrollando este sistema quiza sea un error minimo pero ya estoy estresado me podrian decir que estoy asiendo mal porfavor
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

RedZer

ya le intente y no le encuentro mi error :-(
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

#2
No se, pero creo que es algo como lo siguiente,

Código (sql) [Seleccionar]
CREATE TABLE tblPoC( ID INT NOT NULL AUTO_INCREMENT, COD VARCHAR(10), DESCR VARCHAR(20), PRIMARY KEY (ID) );

INSERT INTO tblPoC(COD, DESCR) VALUES('A001', 'PoC1-A001');
INSERT INTO tblPoC(COD, DESCR) VALUES('A001', 'PoC2-A001');
INSERT INTO tblPoC(COD, DESCR) VALUES('A002', 'PoC1-A002');
INSERT INTO tblPoC(COD, DESCR) VALUES('A002', 'PoC2-A002');
INSERT INTO tblPoC(COD, DESCR) VALUES('A002', 'PoC3-A002');


Al realizar la siguiente consulta, el resultado es:
Código (sql) [Seleccionar]
mysql> SELECT COD AS 'Código', COUNT(COD) AS 'Cantidad' FROM tblPoC GROUP BY COD;
+---------+----------+
| Código | Cantidad |
+---------+----------+
| A001    |        2 |
| A002    |        3 |
+---------+----------+
2 rows in set (0.00 sec)

mysql> SELECT COD AS 'Código', COUNT(COD) AS 'Cantidad' FROM tblPoC WHERE (COD = 'A001') GROUP BY COD;
+---------+----------+
| Código | Cantidad |
+---------+----------+
| A001    |        2 |
+---------+----------+
1 row in set (0.00 sec)

mysql>
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

no brother bueno mira en la primera consulta que se hace en la tabla jcalendar yo busco las fechas que ingresa el usuario si existe ago optra consulta del cual toma el numero de control del cliente de la tabla jcalendar para buscar en la segunda consulta y ahi es donde quiero agrupar el A001 por que si me lo muestra pero por ejemplo si en la tabla reporte hay dos pacientes con el mismo codigo osea este  A001 pues me muestra los dos asi
A001=1
A001=1
y yo quiero esto
A001=2
que tengo mal en mi bucle
?? o hay otra forma de hacerlo
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

Pero viste lo que hace la query que te deje?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

si lo cheque brother pero es igual acomo yo lo tengo en la segunda consulta
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

No se cual es tú problema, porque mira el PoC que hice:

Código (php) [Seleccionar]
  $sHandle = mysql_connect( "127.0.01", "root", "root" );
  mysql_select_db( "dbPoC", $sHandle );

  $sSQL = "SELECT COD AS 'Código', COUNT(COD) AS 'Cantidad' FROM tblPoC GROUP BY COD;";
  $sQuery = mysql_query( $sSQL, $sHandle ) or die( "Error: " . mysql_error() );

  while( $sRows = mysql_fetch_array($sQuery) ){
    echo "El código ". $sRows['Código'] ." tiene ". $sRows['Cantidad'] ." repeticiones.<br>";
  }


Resultado,
Código (PoC) [Seleccionar]
El código A001 tiene 2 repeticiones.
El código A002 tiene 3 repeticiones.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

ok mira deja adaptar el codigo que me pasaste alo que me esta sdaliendo mal ok para que me entiendas aond e esta mi rpoblema
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

RedZer

mira lo adapte alo que yo quiero hacer

Código (php) [Seleccionar]


<?php   

  $sHandle 
mysql_connect"127.0.01""root""" );
  
mysql_select_db"regfis"$sHandle );

//en mi tabla jcalendar tengo 2 campos los cuales son StartTime  y folio entonnces primero genero esta consulta para 
//saber si las fechas que introdujo el usuario existen esta consulta es obligatoria ya que estoy generando un reporte por //rango de fechas si existe las fechas indicadas dentro de mi tabla jcalendar genero otra consulta en este caso tomare el codigo que me pusiste y la misma tabla solo le agregue un campo que se llama folio  a tu tabla tblPoC bueno la segunda consulta que genero es para comparar si el folio que esta en mi tabla jcalendar es igual al folio que esta en tu tabla tblPoC si es asi ahi debo de contar cuandos A001 existen 
 
$sSQL "select * FROM jqcalendar  WHERE StartTime   BETWEEN '2010-12-01' AND '2010-12-06'  GROUP BY Subject";
 
$sQuery mysql_query$sSQL$sHandle ) or die( "Error: " mysql_error() );
  
  
  while( 
$sRows1mysql_fetch_array($sQuery) ){
    
 
  
  
  
$sSQL "SELECT COD AS 'Código', COUNT(COD) AS 'Cantidad' FROM tblPoC where folio='$sRows1[1]' GROUP BY COD;";
  
$sQuery mysql_query$sSQL$sHandle ) or die( "Error: " mysql_error() );
 
  while( 
$sRows mysql_fetch_array($sQuery) ){
    echo 
"El código "$sRows['Código'] ." tiene "$sRows['Cantidad'] ." repeticiones.<br>";
  }
  
   }
//cierrro el whuile de la tabla jcalendar
  
  
?>




con esto solo me imprime que tengo un A001en tu tabla tblPoC  siendo que tengo mas
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

A ver, muestrame la salida de la segunda query,
Código (php) [Seleccionar]
print "SELECT COD AS 'Código', COUNT(COD) AS 'Cantidad' FROM tblPoC where folio='$sRows1[1]' GROUP BY COD;";

Después, ejecutarlo desde la consola de MySQL y también muestrame el resultado.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.