Per resoldre dubtes de caire tècnic, relacionades o no amb el món del ripeig.
Moderadors: Petiso, Ayu
-
Autor del tema
Dende
- Entrades: 261
- Membre des de: dl. abr. 30, 2007 16:46
-
Status:
Desconnectat
#1
Entrada
Autor: Dende » dt. set. 08, 2009 14:11
Hola!
Estic intentant crear un servei de windows que m'actualitzi unes dades d'una base de dades amb visual basic, però tinc problemes amb aquesta consulta SQL:
No entenc quin és el problema de la consulta, ja que n'he utilitzat de semblants moltes vegades i no sé perquè ara falla, tot el que dóna són valors NULL. A veure si em podeu ajudar.
Gràcies!
-
Petiso
- Site Admin

- Entrades: 16309
- Membre des de: dv. oct. 06, 2006 13:13
-
Status:
Desconnectat
#2
Entrada
Autor: Petiso » dt. set. 08, 2009 14:59
El problema, es que fas un SQL incorrecte !
No pots fer un MAX() amb una comanda al costat i sense un grup by.
Que vols saber, la temperatura màxima del dia i a quina hora ha estat ? O vols saber la temperatura màxima de cada hora ?
Adéu !
-
Autor del tema
Dende
- Entrades: 261
- Membre des de: dl. abr. 30, 2007 16:46
-
Status:
Desconnectat
#3
Entrada
Autor: Dende » dt. set. 08, 2009 15:38
La temperatura màxima del dia i a quina hora. I de la mateixa manera hauré de fer el mateix amb humitat, etc..
Gràcies Petiso.
-
Petiso
- Site Admin

- Entrades: 16309
- Membre des de: dv. oct. 06, 2006 13:13
-
Status:
Desconnectat
#4
Entrada
Autor: Petiso » dt. set. 08, 2009 15:58
Aleshores, jo ho faria de la següent manera: primer de tot agafaria la temp màxiam del dia, i despres consultaria quines hores (per que poden ser varies) ha estat.
Això ho guardes a una variable (per exemple max_temp) i després:
Codi: Selecciona’ls tots
SELECT hora FROM resum_dia WHERE (dia = '1/17/2009') AND temp = max_temp
Segurament es pot fer amb un sol SELECT fent un join i així ..... però weno, es complicar-se la vida :-p
Adéu !
-
Autor del tema
Dende
- Entrades: 261
- Membre des de: dl. abr. 30, 2007 16:46
-
Status:
Desconnectat
#5
Entrada
Autor: Dende » dt. set. 08, 2009 16:34
Moltes gràcies Petiso, ara almenys sembla q agafa bé les dades. Ja us diré aviam si funciona bé finalment o no.
-
Petiso
- Site Admin

- Entrades: 16309
- Membre des de: dv. oct. 06, 2006 13:13
-
Status:
Desconnectat
#6
Entrada
Autor: Petiso » dt. set. 08, 2009 16:38
De res .... ja te passaré la factura :-p
-
Autor del tema
Dende
- Entrades: 261
- Membre des de: dl. abr. 30, 2007 16:46
-
Status:
Desconnectat
#7
Entrada
Autor: Dende » dj. set. 10, 2009 14:26
Hola!
Ara em surt un error en el PHPMyAdmin. Vaig amb el wampserver 2.0 i no sé a què es deu aquest error.
Busco tal com diu el fitxer log del php però ni existeix, no hi ha res. Si no és possible solucionar-ho m'agradaria saber quins fitxers haig de guardar per tal de restaurar l'estructura d'una taula de la BD.
L'error és:
Gràcies
PD: JA VA. S'HA ARREGLAT APARENTMENT SOL

-
Autor del tema
Dende
- Entrades: 261
- Membre des de: dl. abr. 30, 2007 16:46
-
Status:
Desconnectat
#8
Entrada
Autor: Dende » dc. set. 30, 2009 16:44
Hola de nou!
Tinc un altre dubte:
Jo tinc una taula en una BD amb aquests camps entre d'altres: 'dia' i 'hora'.
M'agradaria fer una consulta on introduint-li un dia d'inici, un dia de final, una hora d'inici i una hora de final, em mostri les dades compreses entre aquests paràmetres.
He intentat la següent consulta:
Codi: Selecciona’ls tots
SELECT * FROM taula WHERE ((dia BETWEEN $diainici AND $diafinal) AND (hora BETWEEN $horainici AND $horafinal))
El problema és que només em selecciona les dades que van de l'hora inicial a la final de cada dia comprès entre diainici i diafinal.
No sé si m'he explicat gaire però suposo que poc o molt alguna cosa heu entès.
Gràcies.
-
arakelov
- Entrades: 10759
- Membre des de: ds. feb. 17, 2007 16:37
- Ubicació: Sant Martí (BCN)
-
Status:
Desconnectat
#9
Entrada
Autor: arakelov » dc. set. 30, 2009 16:54
Has de convertir dies i hores a format data, és a dir, construir un datainici="diainici+horainici" i un datafi="diafi+horafi" (ho poso entre cometes perquè hauràs de buscar quina és la funció per fer aquestes conversions i sumes).
Llavors la clàusula WHERE serà "dia+hora" BETWEEN datainici AND datafi (fent el mateix amb les columnes dia i hora).
Jo també espero haver estat entenedor
Salut!
Why you think the net was born? Porn! Porn! Porn!
-
Petiso
- Site Admin

- Entrades: 16309
- Membre des de: dv. oct. 06, 2006 13:13
-
Status:
Desconnectat
#10
Entrada
Autor: Petiso » dc. set. 30, 2009 17:11
Exacte, la solucio es tindre el dia i l'hora en un camp .... que el SQL ja al te: DATETIME
Aleshores només te caldrà fer:
SELECT * FROM taula WHERE data > data_inici AND data < data_final
data te format:
2009-09-30 12:45:05
-
Autor del tema
Dende
- Entrades: 261
- Membre des de: dl. abr. 30, 2007 16:46
-
Status:
Desconnectat
#11
Entrada
Autor: Dende » dc. set. 30, 2009 19:40
Mm... és a dir fer un camp més a l'estructura de la taula.. no hi ha cap altra alternativa?
Gràcies.
-
Petiso
- Site Admin

- Entrades: 16309
- Membre des de: dv. oct. 06, 2006 13:13
-
Status:
Desconnectat
#12
Entrada
Autor: Petiso » dc. set. 30, 2009 20:03
No, no es fer un cap mes ...... es fer un camp dels DOS que tens .... es mes optim !
O sigui .... els camps Dia i hora ->>>>> data
L'altre opció es (no provat)
SELECT * FROM taula WHERE DATE_ADD($dia,INTERVAL $hora HOUR_SECOND) > '$dia_inici $hora_inici AND DATE_ADD($dia,INTERVAL $hora HOUR_SECOND) < '$dia_final $hora_final'
Segueixo pensant ...... que lo mes optim es el primer .... a mes es com es treballa sempre amb SQL .... amb datetime !!
Adéu !
-
Autor del tema
Dende
- Entrades: 261
- Membre des de: dl. abr. 30, 2007 16:46
-
Status:
Desconnectat
#13
Entrada
Autor: Dende » dj. oct. 01, 2009 7:06
Ja però per altres consultes que faig a la BD necessito tenir-los separats, sinó portaria molta més feina.
Doncs afegiré aquest nou camp si no hi ha més remei. Vinga gràcies!
-
arakelov
- Entrades: 10759
- Membre des de: ds. feb. 17, 2007 16:37
- Ubicació: Sant Martí (BCN)
-
Status:
Desconnectat
#14
Entrada
Autor: arakelov » dj. oct. 01, 2009 8:17
Dende ha escrit:Doncs afegiré aquest nou camp si no hi ha més remei. Vinga gràcies!
No has d'afegir cap camp, has de calcular-lo durant la consulta!!
Why you think the net was born? Porn! Porn! Porn!
-
Petiso
- Site Admin

- Entrades: 16309
- Membre des de: dv. oct. 06, 2006 13:13
-
Status:
Desconnectat
#15
Entrada
Autor: Petiso » dj. oct. 01, 2009 10:19
el MYSQL ja esta preparat per aixo :-p
El dia que noves vulgis la data fas: DATE(camp sql en format datetime) i te torna la data
Passat per aquí, tens les funcions que pugis necessitar explcaides:
http://dev.mysql.com/doc/refman/5.1/en/ ... tions.html
En resum .... en SQL es treballa casi semrpe en datetime, i si necessites al data, s'extrau al moment amb funciona pròpies del mysql.
Adéu !