epic

Pro
Se incorporó
11 Febrero 2007
Mensajes
794
Hola a todos nuevamente ;)

Tengo una duda... tengo la siguiente consulta:

Código:
<?php
    require 'conexion.php';
    $campo= "";
    if(!empty($_POST))
    {
    $valor = $_POST['rut'];
    if(!empty($valor)){
    $campo= "WHERE pacientes.rut LIKE '%$valor'";
    }
}
$sql = "SELECT pacientes.rut, pacientes.nombres, pacientes.apellidos, centros.centro, insumos.cant_lancetas, insumos.cant_cintas, altas.estatus
        FROM pacientes
        LEFT OUTER JOIN centros ON pacientes.id_centro = centros.id_centro
        LEFT OUTER JOIN insumos ON pacientes.rut=insumos.rut
        LEFT OUTER JOIN altas ON pacientes.rut=altas.rut
        $campo GROUP BY pacientes.rut";
$resultado = $mysqli->query($sql) or trigger_error($mysqli->error);
?>

Tengo mas abajo 2 botones , uno que le pone una flag de "Alta" al registro y el otro boton crea otro registro con el mismo rut, pero ahora con flag de "Activo" y asi van esos 2 botones, creando registros (con fecha y el usuario que lo hace) asociados a ese rut pero cambiando de "Alta" a Activo" o de "Activo" a "Alta".

En la BD se almacenan bien los registros, pero al momento de mostrar con esa consulta SQL de mas arriba, me fije que en ocaciones no traia el valor real del registro, hacia Altas, Activaciones, Altas, Activaciones y todo bien, pero en un momento ya me atraia por ejemplo siempre "Alta" aunque en la BD el ULTIMO registro fuese "Activo"(si, necesito que siempre se muestre el ultimo "estatus" de ese paciente.

La tabla pacientes con la tabla Altas estan asociadas con el rut del paciente.
 

Mesita

Capo
Se incorporó
3 Mayo 2007
Mensajes
100
Cual es el problema inicial que tiene? Yo no logré captar la pregunta 🤪
El problema inicial era que necesita hacer un join por paciente con la tabla "altas" pero solamente necesita el último estado registrado.
Luego de eso pasamos al problema de obtener la suma total de insumos utilizados; es decir un problema de join y agregaciones con la tabla insumos.
 
Upvote 0

epic

Pro
Se incorporó
11 Febrero 2007
Mensajes
794
en realidad creo que basta con hacer algo asi:
SQL:
LEFT JOIN (
    SELECT insumos.rut, SUM(cant_lancetas) AS sum_lancetas, SUM(cant_cintas) AS sum_cintas
    FROM insumos
    GROUP BY insumos.rut
) AS total_insumos
ON pacientes.rut = total_insumos.rut

luego en el select deberias poder seleccionas las columnas definidas como sum_lancetas y sum_cintas sin problema
uuuu ya ni recuerdo si pase por algo como esto, pero al parecer funciona en phpmyadmin, mañana a ver si me hago un tiempo y lo tiro al php.

gracias @Mesita por tu tiempo.
 
Upvote 0

epic

Pro
Se incorporó
11 Febrero 2007
Mensajes
794
El problema inicial era que necesita hacer un join por paciente con la tabla "altas" pero solamente necesita el último estado registrado.
Luego de eso pasamos al problema de obtener la suma total de insumos utilizados; es decir un problema de join y agregaciones con la tabla insumos.
gracias @Mesita , quedo ok :D
 
Upvote 0
D

Deleted member 1045607

Guest
.....Y este es el modelo entidad relacion:
Ver adjunto 26912

¿cómo se relaciona y de que manera (1:n, n:1, n:m...) cada entidad...? ¿Usuarios no se relaciona con nadie?


En serio... ¿cuales serían tus tablas (entidades) sin desarrollarlo todo? Es decir. Tienes una tabla PACIENTES. una ALTAS... supongo que una MEDICOS....

¿Cuales son las especificaciones del cliente?
 
Upvote 0

epic

Pro
Se incorporó
11 Febrero 2007
Mensajes
794
¿cómo se relaciona y de que manera (1:n, n:1, n:m...) cada entidad...? ¿Usuarios no se relaciona con nadie?


En serio... ¿cuales serían tus tablas (entidades) sin desarrollarlo todo? Es decir. Tienes una tabla PACIENTES. una ALTAS... supongo que una MEDICOS....

¿Cuales son las especificaciones del cliente?


Hola... no, médicos no, es solamente llevar un control de mediciones, insumos y problemas por paciente, solo eso.

La tabla usuarios son los ejecutivos que se loguean al sistema para ingresar los datos.
 
Upvote 0
D

Deleted member 1045607

Guest
No se a que te refieres exactamente con "insumos". ¿Qué registros se añadirían en esa tabla?

Independientemente de la entidad "insumos" y "medicos", sigues teniendo las tablas "PACIENTES" y "ALTAS", ¿es así?
Según mi lógica un paciente puede tener varias altas (o "tipos de altas/dolencias"), del mismo modo un "tipo de alta/dolencia" puede ser utilizado por varios y diferentes pacientes....
Simplificando... un PACIENTE podrá haber sido dado de ALTA por una o varias ALTAS/DOLENCIAS y una DOLENCIA podrá coincidir con uno o varios PACIENTES... Yo veo una relación n:m entre PACIENTES y DOLENCIAS en la que se genera una tabla intermedia que sería tu tabla ALTAS

PACIENTES ----------------< ALTAS (N:M) >---------------- DOLENCIAS
(clave) id_paciente (clave) id_dolencia (clave) id_dolencia
etc... (clave) id_paciente sintomas
fecha_ingreso etc.....
etc....
 

Archivo adjunto

  • TB.jpg
    TB.jpg
    19,4 KB · Visitas: 69
Upvote 0

freishner

Capo
Se incorporó
16 Noviembre 2021
Mensajes
303
Te dejo algunos recursos en PDF para que estudies SQL, no lo veas como una pérdida de tiempo, si bien las tecnologías se van modernizando, las bases de SQL son transversales y a la larga no te vas a arrepentir de haberlas aprendido.

El de Alan Beaulieu es weno, lo leí cuando estudiaba informática porque no entendía ni wea de lo que enseñaban los profes, conseguí una copia en español donde estudiaba y me iba todos los días en la micro leyendo.

Si quisieras comprarlo, no es mala inversión, pero es carozzi: en buscalibre sale $52k + envío

Los adjuntos:
- Aprende SQL en un fin de semana. Antonio Padial Solier
- Aprende SQL. Alan Beaulieu (Inglés) + Ejercicios (archivo zip)
- Aprende SQL. (Mismo título diferente libro)
- Fundamentos de bases de datos 4ta edición. (Es la biblia de las bases de datos)

Carpeta Drive
 
Última modificación:
Upvote 0

epic

Pro
Se incorporó
11 Febrero 2007
Mensajes
794
Te dejo algunos recursos en PDF para que estudies SQL, no lo veas como una pérdida de tiempo, si bien las tecnologías se van modernizando, las bases de SQL son transversales y a la larga no te vas a arrepentir de haberlas aprendido.

El de Alan Beaulieu es weno, lo leí cuando estudiaba informática porque no entendía ni wea de lo que enseñaban los profes, conseguí una copia en español donde estudiaba y me iba todos los días en la micro leyendo.

Si quisieras comprarlo, no es mala inversión, pero es carozzi: en buscalibre sale $52k + envío

Los adjuntos:
- Aprende SQL en un fin de semana. Antonio Padial Solier
- Aprende SQL. Alan Beaulieu (Inglés) + Ejercicios (archivo zip)
- Aprende SQL. (Mismo título diferente libro)
- Fundamentos de bases de datos 4ta edición. (Es la biblia de las bases de datos)

Carpeta Drive
gracias ,ya los baje :)
 
Upvote 0
Subir