hola foreros llevo ya 2 dias con esto pense que lo habia resolvido pero no es asi pasa lo siguiente tengo dos tablas la primer tabla se llama jqcalendar tiene la siguiente estructura:
Subject StartTime
--------- ----------------
148100-0 2010-12-01
298852-0 2010-12-13
298852-0 2010-12-23
366005-12 2010-12-22
366005-12 2010-12-29
bueno como ven son dos campos que tiene esa tabla el primer campo que es Subject almacena la ficha del usuario el segundo campo que es StartTime almacena la fecha a la que asistira el usuario como pueden ver se repite varias veces la ficha y yo no quiero eso asi que use group by para areglar ese problema , bueno la otra tabla es esta se llama reporte tiene la siguiente estructura
ficha codigo oms
------ -------- ---------
148100 0 A00
298852 0 A00
366005 12 C00
esta tabla reporte tiene 3 campos la primera es ficha la segunda codigo , en estos dos campos are una aclaracion ya que la ficha del paciente va acompañada de su respectivo codigo ejemplo 366005-12 despues del guion es el codigo en este caso el codigo es 12 bueno como pueden ver en esta tabla reporte los inserto por separado y en la tabla jqcalendar lo inserto junto osea la ficha y el codigo . por que? bueno por que la tabla jqcalendar es de una agenda ya prediseñada y si le agregaba 2 campos mas osea ficha y codigo me marcaria error la agenda asi que solo ocupe el campo subject que ya estaba creado en esa tabla para almacenar la ficha . bueno tengo el siguiente codigo
$ini="2010-12-01 00:00:00";
$fin="2010-12-31 23:59:59";
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))
{
//sepasro la ficha del codigo que extraigo de la tabla jcalendar
$ficha=$rowj[1];
$partes=explode('-',$ficha);
$aa=$partes[0];
$bb=$partes[1];
conectar();
$queEmp2 = mysql_query("
SELECT oms FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms ");
$rowEmp2 = mysql_fetch_assoc($queEmp2);
echo $cat=$rowEmp2['oms']."<br>";
desconectar();
}
}//cierro el if
bueno como los reportes son por rango de fecha por eso primero ago una consulta a la tabla jcalendar para buscar el rango de fecha que introduzca el usuario de ahi si existen esas fechas introducidas yo lo que quiero es contar cuantos oms se repiten de la tabla reporte para eyo valido que la ficha y el codigo que se extrae de la tabla jcalendar sea igual ala que esta en la tabla reporte pero no me sale me aroja esto
A00
A00
9999
siendo que me deberia de arojar esto
A00
9990
creo que no me esta agrupando las oms al momento de hacer GROUP BY oms ya intete hacer esta consulta tambien
conectar();
$queEmp2 = mysql_query("
SELECT count(oms) as num FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms ");
$rowEmp2 = mysql_fetch_assoc($queEmp2);
echo $cat=$rowEmp2['num']."<br>";
desconectar();
pero en esta me aroja 3 unos asi:
1
1
1
porfavor me podrian ayudar llevo ya mas de un dia con esto
Antes que nada... Printea la query y ejecútala en el MySQL.
amigooo sell como siempre apoyandome yevo dias con este error mira ya imprimi las query y me aroja esto
A00
A00
9999
si me entendiste lo que deceo hacer
Pero las querys, eso son los resultados, YO QUIERO SON LAS QUERYS!
mira sinceramente no te entiendo yo imprimi la primera consulta asi no se si te referias a esto
echo $jcalendar=mysql_query("select * FROM jqcalendar WHERE StartTime BETWEEN '$ini' AND '$fin' AND asistencia='1' GROUP BY Subject ");
yel resultado que me aroja de esa es
Resource id #4
en la seguhnda consulta lo imprimi asi
echo $queEmp2 = mysql_query("
SELECT distinct diags_clave FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY diags_clave ");
y el resultado que me vota es esto
Resource id #6Resource id #8Resource id #10
ahhahahaa quiero que hagas esto,
print "SELECT count(oms) as num FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms";
Para ver los valores de las variables. Además de mostradme el valor que salio del MySQL.
jajaja okas amigo mira ise el de la consulta que esta dentro del while
print "SELECT count(oms) as num FROM reporte where ficha='$aa' and codigo='$bb' GROUP BY oms";
y el resultadop fue esto
SELECT count(oms) as num FROM reporte where ficha='148100' and codigo='0' GROUP BY oms SELECT count(oms) as num FROM reporte where ficha='298852' and codigo='0' GROUP BY oms SELECT count(oms) as num FROM reporte where ficha='366005' and codigo='12' GROUP BY oms
y lo que me voto msql con esta consulta
SELECT count(oms) AS num
FROM reporte
WHERE ficha = '148100'
AND codigo = '0'
GROUP BY oms
LIMIT 0 , 30
resultado
num
----
1
Bueno, y mi pregunta ahora, es: Como quieres que agrupe, si usa diferentes consultas?
PD: Ya hasta me confundí, hahahahaa
jaja si brother yo dede ayer estoy con esto :rolleyes: mira es cierto haga diferentes consultas pero fijate al prinicpio cuando explique lo que deceo hacer la primera consulta la ocupo para buscar el rango de fechas osea la de inicio y la final ok , y la segunda consulta lo ocupo para contar el campo oms que se encuentra en la tabla reporte pero siempre y cuando la ficha y el codigo sea igual al que esta en la tabla jcalendar
Pero si son 3 Querys diferentes como quieres que las agrupe. XD
SELECT count(oms) as num FROM reporte where ficha='148100' and codigo='0' GROUP BY oms;
SELECT count(oms) as num FROM reporte where ficha='298852' and codigo='0' GROUP BY oms;
SELECT count(oms) as num FROM reporte where ficha='366005' and codigo='12' GROUP BY oms
aja bro pero mira en la tabla reporte el oms A00 se repite dos veces
ficha codigo oms
------ -------- ---------
148100 0 A00
298852 0 A00
366005 12 C00
y yo lo que quiero es que aparezca asi
A00=2
C00=1
o dime como hacerle bro para hacer lo que deceo si me entiendes lo que deceo hacer?
Estáis un poco confundido, mira...
Si ejecutas la siguiente query, sólo te debe de salir 1 registro,
SELECT COUNT(oms) AS num FROM reporte WHERE ficha='148100' AND codigo='0' GROUP BY oms;
Lo mismo sucede si ejecutas,
SELECT COUNT(oms) AS num FROM reporte WHERE ficha='298852' AND codigo='0' GROUP BY oms;
y también en,
SELECT COUNT(oms) AS num FROM reporte WHERE ficha='366005' AND codigo='12' GROUP BY oms;
De ahí es donde sale los tres 1's. Ahora si haces lo siguiente de seguro te salen 2 registros, porque cumplen con la condición,
SELECT COUNT(oms) AS num FROM reporte WHERE codigo='0' GROUP BY oms;
Ejecútalo y dime que es verdad.
cierto amigo me aroja esto
2
2
Bueno y supongo que sabes a que se debe ese resultado, verdad?
si por que hay dos fichas que su codigo es cero y en la consulta estoy condicionando que me cuente las oms donde el codigo sea igual a cero
SELECT COUNT(oms) AS num FROM reporte WHERE codigo='0' GROUP BY oms;
hahahahaha pero lo que preguntaba era por las necesidades que tienes, no de la query anterior. Osea ya saber como resolver tu problema?
jajaja encontre otra solucion mi brother voy a insertar en la tabla jcalendar el oms no lo habia echo por que esa tbal es de una agenda prediseñada y esta programada con ajax,php(poo) y yo ala poo aun no le entiendo muy bien pero ayer ya no me quedo de otra mas que darle una leida de volda y pues ya logre insertar el oms en esa tabla, y pues de la otra manera de como lo queria hacer no supe como resolverlo el problema es que s eme vino el tiempo encima
shales me sigue asiendo lo mismo ahora mi tabla jcalendar quedo asi
Subject StartTime oms
------------ ----------- -------
148100-0 2010-12-01 A00
298852-0 2010-12-02 A00
298852-0 2010-12-07 A00
como le puedo hacer bro ya no ecnuentro solucion :(