Ajuda MySQL
-
Autor del tema - Entrades: 723
- Membre des de: dt. set. 18, 2007 18:25
- Ubicació: Mataró
- Status: Desconnectat
Ajuda MySQL
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.
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.
Little man comes when everything goes
-
- Entrades: 10758
- Membre des de: ds. feb. 17, 2007 16:37
- Ubicació: Sant Martí (BCN)
- Status: Desconnectat
Re: Ajuda MySQL
De super heroi res, però algo de SQL sé
Jo el que faria és una subquery per detectar quines són les unitats que sí tenen alguna assignació entre les dues dates i excloure-les, amb un NOT IN:
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!

Jo el que faria és una subquery per detectar quines són les unitats que sí 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ó*/
);
[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!
arakelov l’ha editat per darrera vegada el dia: dj. gen. 15, 2009 8:37, en total s’ha editat 1 vegada.
Why you think the net was born? Porn! Porn! Porn!
Re: Ajuda MySQL
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

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

Salut i sort


Re: Ajuda MySQL
Weno .... doncs anava a contestar però se m'han avançat ... un tema apassionant el SQL :-pLambolico ha escrit:Bé, si algún super heroi em pot ajudar, li estari molt molt agraït.
Adéu !


-
Autor del tema - Entrades: 723
- Membre des de: dt. set. 18, 2007 18:25
- Ubicació: Mataró
- Status: Desconnectat
Re: Ajuda MySQL
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!
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!

Little man comes when everything goes