Pàgina 1 de 1

Ajuda MySQL

Publicat: dj. gen. 15, 2009 3:32
Autor: Lambolico
Bones, estic fent el treball de recerca....i me quedat encallat en la part més important TT....si algú pot ajudar...

Resulta que tinc una base de dades que gestiona una empresa de transports. El mànager, introdueix quines unitats de transport té i quins lliuraments ha de fer. Docs bé, tinc un problema en la consulta MySQL principal, la que selecciona quines unitats de transport estàn disponible per a fer una entrega. Tinc dus taules:

unitats
id
descripcio
capacitat
velocitat

unitats_ocupades
id
id_unitat
id_lliurament
data_sortida
data_arribada

llavors tinc dues dates, la data quan s'haurà dentregar el lliurament, i la data desde la que el paquet està llest per al transport. El problema bé al fer una consulta que mostri només les unitats que no tenen cap feina assignada entre les dues dates proporcionades.

El màxim que ha aconseguit ha estat que funcionés....però si una unitat de transport tenia dues feines programades, una fora de la duració del nou lliurament i una altre dins, primer saltava la unitat, pero després al trobar-la fora dels marges, pasava la seva id com a bona.

Bé, si algún super heroi em pot ajudar, li estari molt molt agraït.

Re: Ajuda MySQL

Publicat: dj. gen. 15, 2009 8:34
Autor: arakelov
De super heroi res, però algo de SQL sé :mrgreen:

Jo el que faria és una subquery per detectar quines són les unitats que tenen alguna assignació entre les dues dates i excloure-les, amb un NOT IN:

Codi: Selecciona’ls tots

SELECT id, descripcio
FROM unitats
WHERE id NOT IN (
   SELECT id_unitat
   FROM unitats_ocupades
   WHERE <CONDICIO> /*tenen assignació*/
);
on <CONDICIO> seria, si no ho entès malament, alguna cosa com ara

[data_paquet_llest] <= data_sortida AND data_arribada <= [data_lliurament]

Els que van entre [ ] serien els paràmetres que passes a la consulta.

Salut!

EDITO: no estava segur si la clàusula NOT IN està suportada en MySQL (jo toco més Oracle o SQL Server) però sembla que sí: http://ocaoimh.ie/2004/09/16/mysql-find ... her-table/

Resalut!

Re: Ajuda MySQL

Publicat: dj. gen. 15, 2009 8:37
Autor: Ferriol
Hola,
No et puc ajudar directament, pero mira aquests links a vore si ells ho poden fer
[url]http://www.aa-sistemas.eti.br/ayudadeaccess/Index.html[/url]
[url]http://www.mvp-access.com/foro/[/url]
Salut i sort
Imatge

Re: Ajuda MySQL

Publicat: dj. gen. 15, 2009 11:06
Autor: Petiso
Lambolico ha escrit:Bé, si algún super heroi em pot ajudar, li estari molt molt agraït.
Weno .... doncs anava a contestar però se m'han avançat ... un tema apassionant el SQL :-p



Adéu !

Re: Ajuda MySQL

Publicat: dg. feb. 08, 2009 20:15
Autor: Lambolico
Buenas, sento el retard, pero no havia vist la resposta! Bé, mercia a tots per cuntestar.
Al final el problema amb aquesta consulta era que faltaven les cometes en els camps de que contenien dates. Tot hi així la consulta no feia el que jo volia que fés (error lògic meu). Al final la vaig reconstruir, i he vaig fer una cosa similar al que arakelov havi dit: consulto quines unitats no poden realitzar el lliurament, i les excloc amb una combinació per l'esquerra. Bé, si a algú li interessés molt ja penjaria el codi.

Merci a tohom! ;)