From cesare a ngi.it Wed May 2 09:42:03 2007 From: cesare a ngi.it (Cesare D'Amico) Date: Wed May 2 10:18:53 2007 Subject: [Db] Problema con mysqldump di mysql5 Message-ID: <200705020942.03702.cesare@ngi.it> Hola, ho il seguente problema: da un server faccio il backup di un database su mysql5, che è su un altro server. Il dump è ok, a parte il piccolo dettaglio che arriva fino alla tabella "punti_vendita", saltandomi tutte le tabelle successive. Non ci sono errori, e il file dezippato viene correttamente importato... ma ovviamente mancano tutte le tabelle successive! È mai successo a nessuno? Avete idea del perché non faccia il dump di tutto? Grazie mille, ciaps ce PS: sul server da cui faccio il backup ho copiato solo gli eseguibili mysql e mysqldump, che come detto funzionano "quasi" egregiamente (con "mysql" riesco a loggarmi tranquillamente sul DBMS remoto). -- Cesare D'Amico | Gruppo Volta Area tecnica | Web & Mkt Solutions Tel: 045 21 000 84 | Via Leida 8 - Verona Fax: 045 21 000 85 | http://www.gruppovolta.it From cesare a ngi.it Wed May 2 09:45:24 2007 From: cesare a ngi.it (Cesare D'Amico) Date: Wed May 2 10:22:08 2007 Subject: [Db] Problema con mysqldump di mysql5 In-Reply-To: <200705020942.03702.cesare@ngi.it> References: <200705020942.03702.cesare@ngi.it> Message-ID: <200705020945.24958.cesare@ngi.it> Alle 09:42, mercoledì 02 maggio 2007, Cesare D'Amico ha scritto: > Avete idea del perché non faccia il dump di tutto? Trovato :( http://bugs.mysql.com/bug.php?id=14726 Ora vedo se se ne viene fuori... -- Cesare D'Amico | Gruppo Volta Area tecnica | Web & Mkt Solutions Tel: 045 21 000 84 | Via Leida 8 - Verona Fax: 045 21 000 85 | http://www.gruppovolta.it From marcello a vezz.it Wed May 2 09:45:54 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 2 10:22:30 2007 Subject: [Db] Problema con mysqldump di mysql5 In-Reply-To: <200705020942.03702.cesare@ngi.it> References: <200705020942.03702.cesare@ngi.it> Message-ID: <463841B2.2070407@vezz.it> Cesare D'Amico ha scritto: > Hola, ho il seguente problema: da un server faccio il backup di un > database su mysql5, che è su un altro server. Il dump è ok, a parte il > piccolo dettaglio che arriva fino alla tabella "punti_vendita", > saltandomi tutte le tabelle successive. > Versione dell'engine? Versione dei tool? Ci sono state diverse modifiche nelle release 5.1. > > È mai successo a nessuno? Avete idea del perché non faccia il dump di > tutto? > Hai delle viste, dei trigger o altre cose del genere? > > PS: sul server da cui faccio il backup ho copiato solo gli eseguibili > mysql e mysqldump, che come detto funzionano "quasi" egregiamente > (con "mysql" riesco a loggarmi tranquillamente sul DBMS remoto). > Controlla le versioni. Ciao Marcello From cesare a ngi.it Wed May 2 10:03:46 2007 From: cesare a ngi.it (Cesare D'Amico) Date: Wed May 2 10:48:09 2007 Subject: [Db] Problema con mysqldump di mysql5 In-Reply-To: <463841B2.2070407@vezz.it> References: <200705020942.03702.cesare@ngi.it> <463841B2.2070407@vezz.it> Message-ID: <200705021003.46564.cesare@ngi.it> Alle 09:45, mercoledì 02 maggio 2007, Marcello Vezzelli ha scritto: > Hai delle viste, dei trigger o altre cose del genere? Proprio un bug sul dump delle viste :( -- Cesare D'Amico | Gruppo Volta Area tecnica | Web & Mkt Solutions Tel: 045 21 000 84 | Via Leida 8 - Verona Fax: 045 21 000 85 | http://www.gruppovolta.it From marcello a vezz.it Wed May 2 10:18:28 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 2 10:55:54 2007 Subject: [Db] Problema con mysqldump di mysql5 In-Reply-To: <200705021003.46564.cesare@ngi.it> References: <200705020942.03702.cesare@ngi.it> <463841B2.2070407@vezz.it> <200705021003.46564.cesare@ngi.it> Message-ID: <46384954.5050203@vezz.it> Cesare D'Amico ha scritto: > >> Hai delle viste, dei trigger o altre cose del genere? >> > > Proprio un bug sul dump delle viste :( > Era successo anche a me, proprio su una vista. Avevo risolto aggiornando all'ultima versione disponibile il server (e relativi tool) Ciao Marcello From cesare a ngi.it Wed May 2 10:39:07 2007 From: cesare a ngi.it (Cesare D'Amico) Date: Wed May 2 11:15:51 2007 Subject: [Db] Problema con mysqldump di mysql5 In-Reply-To: <46384954.5050203@vezz.it> References: <200705020942.03702.cesare@ngi.it> <200705021003.46564.cesare@ngi.it> <46384954.5050203@vezz.it> Message-ID: <200705021039.07372.cesare@ngi.it> Alle 10:18, mercoledì 02 maggio 2007, Marcello Vezzelli ha scritto: > Era successo anche a me, proprio su una vista. > Avevo risolto aggiornando all'ultima versione disponibile il server > (e relativi tool) Io per ora non posso aggiornare (e cmq è un bug che è ritornato magicamente in varie versioni successive alla mia, quindi bisogna stare attenti alla versione con la quale si aggiorna), per ora ho indicato con lo script di backup quali sono le tabelle da ricopiare (mysqldump --options database lista_tabelle). Ciao e grazie ce -- Cesare D'Amico | Gruppo Volta Area tecnica | Web & Mkt Solutions Tel: 045 21 000 84 | Via Leida 8 - Verona Fax: 045 21 000 85 | http://www.gruppovolta.it From marcello a vezz.it Thu May 3 15:36:36 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Thu May 3 16:13:53 2007 Subject: [Db] righe come colonne? Message-ID: <4639E564.50404@vezz.it> Ciao a tutti, non so se è un delirio ma mi farebbe comodo utilizzare una query che mi torna una serie di valori di una stessa colonna come valori di colonne distinte (per semplificare la produzione di un report). Mi spiego.. Da una tabella così: data / tipo / importo 2007-05-02,1,100 2007-05-02,2,50 2007-05-02,3,75 2007-05-02,4,200 Vorrei ottenere una tabella del genere, fissando una data: importo1,importo2,importo3,importo4 100,50,75,200 E' sano? Come si può fare? Saluti Marcello From cristiano a verondini.it Thu May 3 15:58:35 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Thu May 3 16:39:35 2007 Subject: [Db] righe come colonne? References: <4639E564.50404@vezz.it> Message-ID: <02d901c78d8b$2f2409d0$6301a8c0@IdeaFutura.local> >> E' sano? >> Come si può fare? Devi fare un rollup/pivot (chiamalo come vuoi :) ) Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From marcello a vezz.it Thu May 3 16:15:22 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Thu May 3 16:52:40 2007 Subject: [Db] righe come colonne? In-Reply-To: <02d901c78d8b$2f2409d0$6301a8c0@IdeaFutura.local> References: <4639E564.50404@vezz.it> <02d901c78d8b$2f2409d0$6301a8c0@IdeaFutura.local> Message-ID: <4639EE7A.10403@vezz.it> Cristiano Verondini ha scritto: >>> E' sano? >>> Come si può fare? > > Devi fare un rollup/pivot (chiamalo come vuoi :) ) Ho guardato un po' di documentazione su ROLLUP ma non ho capito come si applica in questo caso. Nel frattempo ho smacchinato un po'... SELECT SUM( IF( tipo=1, importo, NULL ) ) AS importo1, SUM( IF( tipo=2, importo, NULL ) ) AS importo2, SUM( IF( tipo=3, importo, NULL ) ) AS importo3, SUM( IF( tipo=4, importo, NULL ) ) AS importo4 FROM tabella WHERE DATA = '2007-05-02' GROUP BY DATA E una roba così? Ciao Marcello From domenico.lorusso a pleiade.it Thu May 3 16:51:10 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Thu May 3 17:28:39 2007 Subject: [Db] righe come colonne? In-Reply-To: <4639EE7A.10403@vezz.it> References: <4639E564.50404@vezz.it> <02d901c78d8b$2f2409d0$6301a8c0@IdeaFutura.local> <4639EE7A.10403@vezz.it> Message-ID: <4639F6DE.9070604@pleiade.it> Marcello Vezzelli ha scritto: > Cristiano Verondini ha scritto: >> >> Devi fare un rollup/pivot (chiamalo come vuoi :) ) > > Ho guardato un po' di documentazione su ROLLUP ma non ho capito come > si applica in questo caso. > > Nel frattempo ho smacchinato un po'... > > SELECT > SUM( IF( tipo=1, importo, NULL ) ) AS importo1, > SUM( IF( tipo=2, importo, NULL ) ) AS importo2, > SUM( IF( tipo=3, importo, NULL ) ) AS importo3, > SUM( IF( tipo=4, importo, NULL ) ) AS importo4 > FROM tabella > WHERE DATA = '2007-05-02' > GROUP BY DATA > > E una roba così? in oracle sì in mysql dovrebbe esserci un comando apposta che non ricordo, cerca pivot il rollup di ta i totali di gruppo (esempio mostri il dettaglio giornaliero, settiamanele e mensile nella stessa query) ziao! -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Thu May 3 16:53:07 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Thu May 3 17:30:26 2007 Subject: [Db] righe come colonne? In-Reply-To: <4639F6DE.9070604@pleiade.it> References: <4639E564.50404@vezz.it> <02d901c78d8b$2f2409d0$6301a8c0@IdeaFutura.local> <4639EE7A.10403@vezz.it> <4639F6DE.9070604@pleiade.it> Message-ID: <4639F753.2000302@vezz.it> Domenico L. ha scritto: > >> >> SELECT >> SUM( IF( tipo=1, importo, NULL ) ) AS importo1, >> SUM( IF( tipo=2, importo, NULL ) ) AS importo2, >> > in oracle sì in mysql dovrebbe esserci un comando apposta che non > ricordo, cerca pivot Me lo tengo generico così, non voglio usare comandi troppo specifici di mysql. > > il rollup di ta i totali di gruppo (esempio mostri il dettaglio > giornaliero, settiamanele e mensile nella stessa query) eh, infatti non capivo cosa c'entrava con il mio problema... Ciao Marcello From domenico.lorusso a pleiade.it Thu May 3 17:02:15 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Thu May 3 17:39:41 2007 Subject: [Db] righe come colonne? In-Reply-To: <4639F753.2000302@vezz.it> References: <4639E564.50404@vezz.it> <02d901c78d8b$2f2409d0$6301a8c0@IdeaFutura.local> <4639EE7A.10403@vezz.it> <4639F6DE.9070604@pleiade.it> <4639F753.2000302@vezz.it> Message-ID: <4639F977.7080709@pleiade.it> Marcello Vezzelli ha scritto: > Domenico L. ha scritto: >> >> il rollup ti da i totali di gruppo (esempio mostri il dettaglio >> giornaliero, settiamanele e mensile nella stessa query) > > eh, infatti non capivo cosa c'entrava con il mio problema... però dovrebbe essere standard... caso mai ti servisse :-) -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From cristiano a verondini.it Thu May 3 16:59:56 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Thu May 3 17:41:46 2007 Subject: [Db] righe come colonne? References: <4639E564.50404@vezz.it> <02d901c78d8b$2f2409d0$6301a8c0@IdeaFutura.local> <4639EE7A.10403@vezz.it><4639F6DE.9070604@pleiade.it> <4639F753.2000302@vezz.it> Message-ID: <02fe01c78d93$bb0822d0$6301a8c0@IdeaFutura.local> >>> il rollup di ta i totali di gruppo (esempio mostri il dettaglio >>> giornaliero, settiamanele e mensile nella stessa query) >> eh, infatti non capivo cosa c'entrava con il mio problema... Alcuni chiamano questa tecnica così :) -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From marcello a vezz.it Tue May 8 17:11:36 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue May 8 17:49:52 2007 Subject: [Db] SUM che torna null e non 0 Message-ID: <46409328.2010400@vezz.it> Ciao a tutti, un dubbio... sto usando mysql 5, ho delle query che mi fanno delle somme di record raggruppati, molto semplicamente così: SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=1 GROUP BY tipo Questa query mi torna un totale e va tutto bene. SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=2 GROUP BY tipo Ora visto che non ci sono record di tipo 2, la query non mi ritorna righe (ovvero mi ritorna null). Ora se faccio SELECT ( (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=1 GROUP BY tipo) + (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=2 GROUP BY tipo) ) mi torna null, e non la somma dei record di tipo 1!!! C'è un workaround per questo comportamento? Saluti Marcello From cristiano a verondini.it Tue May 8 17:14:37 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Tue May 8 17:56:33 2007 Subject: [Db] SUM che torna null e non 0 References: <46409328.2010400@vezz.it> Message-ID: <024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local> >> SELECT ( >> (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=1 >> GROUP BY tipo) + >> (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=2 >> GROUP BY tipo) >> ) >> >> mi torna null, e non la somma dei record di tipo 1!!! Oddio, un modo molto macchinoso per ottenere una somma di valori che secondo me andrebbe fatta a livello applicativo! BTW, NULL è un valore particolare in un DB, per cui la somma fra qualsiasi valore numerico e NULL ha sempre come risultato NULL. Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From marcello a vezz.it Tue May 8 17:32:47 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue May 8 18:11:03 2007 Subject: [Db] SUM che torna null e non 0 In-Reply-To: <024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local> References: <46409328.2010400@vezz.it> <024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local> Message-ID: <4640981F.1010501@vezz.it> Cristiano Verondini ha scritto: > >>> SELECT ( >>> (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=1 >>> GROUP BY tipo) + >>> (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=2 >>> GROUP BY tipo) >>> ) >>> >>> mi torna null, e non la somma dei record di tipo 1!!! > > Oddio, un modo molto macchinoso per ottenere una somma di valori > che secondo me andrebbe fatta a livello applicativo! Dai non è poi macchinoso... La cosa bella è che se faccio SELECT IF(tipo=1,SUM(importo),0) + IF(tipo=2,SUM(importo),0) FROM mov WHERE (tipo=1 OR tipo=2) AND data ="2007-01-01" sembra che venga giusto, ci sto ancora guardando bene. > > BTW, NULL è un valore particolare in un DB, per cui la somma fra > qualsiasi valore numerico e NULL ha sempre come risultato NULL. In questo modo impongo 0 e schivo NULL. Ciao Marcello From matteo.giacomazzi a gmail.com Tue May 8 17:35:25 2007 From: matteo.giacomazzi a gmail.com (Matteo Giacomazzi) Date: Tue May 8 18:14:03 2007 Subject: [Db] SUM che torna null e non 0 In-Reply-To: <4640981F.1010501@vezz.it> References: <46409328.2010400@vezz.it> <024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local> <4640981F.1010501@vezz.it> Message-ID: Il 08/05/07, Marcello Vezzelli ha scritto: > > In questo modo impongo 0 e schivo NULL. > mettere un "AND importo IS NOT NULL" non ti risolve la cosa? Tanto i NULL non li vuoi... -- Matteo -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070508/1d750fca/attachment.html From cristiano a verondini.it Tue May 8 17:43:33 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Tue May 8 18:25:20 2007 Subject: [Db] SUM che torna null e non 0 References: <46409328.2010400@vezz.it><024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local><4640981F.1010501@vezz.it> Message-ID: <002101c79187$a537f9b0$6301a8c0@IdeaFutura.local> >> In questo modo impongo 0 e schivo NULL. > mettere un "AND importo IS NOT NULL" non ti risolve la cosa? Tanto i NULL > non li vuoi... La clausola che useresti verrebbe usata nella WHERE di selezione prima della SUM, quindi il valore NULL *come risultato della somma di zero record* l'avresti lo stesso ... Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From cristiano a verondini.it Tue May 8 17:44:54 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Tue May 8 18:27:12 2007 Subject: [Db] SUM che torna null e non 0 References: <46409328.2010400@vezz.it><024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local> <4640981F.1010501@vezz.it> Message-ID: <003001c79187$e18f0ed0$6301a8c0@IdeaFutura.local> >> La cosa bella è che se faccio >> >> SELECT IF(tipo=1,SUM(importo),0) + IF(tipo=2,SUM(importo),0) FROM mov >> WHERE (tipo=1 OR tipo=2) AND data ="2007-01-01" >> >> sembra che venga giusto, ci sto ancora guardando bene. Oddio, ma a te le cose semplici no? :P SELECT SUM(importo) FROM mov WHERE (data ="2007-01-01" AND tipo=1) OR (data ="2007-01-01" AND tipo=2) -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From marcello a vezz.it Tue May 8 17:50:21 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue May 8 18:28:38 2007 Subject: [Db] SUM che torna null e non 0 In-Reply-To: <4640981F.1010501@vezz.it> References: <46409328.2010400@vezz.it> <024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local> <4640981F.1010501@vezz.it> Message-ID: <46409C3D.5090304@vezz.it> Marcello Vezzelli ha scritto: > La cosa bella è che se faccio > > SELECT IF(tipo=1,SUM(importo),0) + IF(tipo=2,SUM(importo),0) FROM mov > WHERE (tipo=1 OR tipo=2) AND data ="2007-01-01" > > sembra che venga giusto, ci sto ancora guardando bene. No, non viene giusto. Mi sono incaponito e con un terrificante SELECT SUM(q.tipo1)-SUM(q.tipo2) FROM ( (SELECT IF(tipo=1,SUM(importo),0) AS tipo1, IF(tipo=2,SUM(importo),0) AS tipo2, data FROM mov WHERE (tipo=1or rif_tipo=2) AND data ="2007-01-01" GROUP BY tipo) AS q) GROUP BY q.data ottengo quel che voglio. Mi sa che è meglio fare due query lato applicativo... Ciao Marcello From marcello a vezz.it Tue May 8 17:53:42 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue May 8 18:31:56 2007 Subject: [Db] SUM che torna null e non 0 In-Reply-To: <003001c79187$e18f0ed0$6301a8c0@IdeaFutura.local> References: <46409328.2010400@vezz.it><024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local> <4640981F.1010501@vezz.it> <003001c79187$e18f0ed0$6301a8c0@IdeaFutura.local> Message-ID: <46409D06.8090206@vezz.it> Cristiano Verondini ha scritto: >>> SELECT IF(tipo=1,SUM(importo),0) + IF(tipo=2,SUM(importo),0) FROM mov >>> WHERE (tipo=1 OR tipo=2) AND data ="2007-01-01" >>> > > Oddio, ma a te le cose semplici no? :P Eh, a volte non mi vengono proprio :D > > SELECT SUM(importo) FROM mov WHERE (data ="2007-01-01" AND > tipo=1) OR (data ="2007-01-01" AND tipo=2) Eh, il fatto è che tipo=2 devono essere sottratti :| E' una specie di saldo di cassa... Ciao Marcello From cristiano a verondini.it Tue May 8 17:58:16 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Tue May 8 18:40:00 2007 Subject: [Db] SUM che torna null e non 0 References: <46409328.2010400@vezz.it> <024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local><4640981F.1010501@vezz.it> <46409C3D.5090304@vezz.it> Message-ID: <004b01c79189$b27e7ed0$6301a8c0@IdeaFutura.local> >> Mi sono incaponito e con un terrificante >> >> SELECT >> SUM(q.tipo1)-SUM(q.tipo2) FROM ( >> (SELECT >> IF(tipo=1,SUM(importo),0) AS tipo1, >> IF(tipo=2,SUM(importo),0) AS tipo2, >> data >> FROM mov >> WHERE (tipo=1or rif_tipo=2) AND data ="2007-01-01" >> GROUP BY tipo) >> AS q) >> GROUP BY q.data >> Mi sa che è meglio fare due query lato applicativo... Anche secondo me. Comunque nella tua query ci sono dei SUM() dentro degli IF(), io farei il contrario. Il GROUP BY della query esterna non dovrebbe servire, considerato che nella WHERE interna hai unn criterio esattamente su data. Per inciso: SELECT SUM(IF(tipo=1, importo, -importo)) FROM mov WHERE (tipo=1 OR rif_tipo=2) AND data ="2007-01-01" -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From marcello a vezz.it Tue May 8 18:10:17 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue May 8 18:48:31 2007 Subject: [Db] SUM che torna null e non 0 In-Reply-To: <004b01c79189$b27e7ed0$6301a8c0@IdeaFutura.local> References: <46409328.2010400@vezz.it> <024701c79183$9f31c1d0$6301a8c0@IdeaFutura.local><4640981F.1010501@vezz.it> <46409C3D.5090304@vezz.it> <004b01c79189$b27e7ed0$6301a8c0@IdeaFutura.local> Message-ID: <4640A0E9.1060005@vezz.it> Cristiano Verondini ha scritto: > Comunque nella tua query ci sono dei SUM() dentro degli IF(), io > farei il contrario. Il GROUP BY della query esterna non dovrebbe > servire, considerato che nella WHERE interna hai unn criterio > esattamente su data. detta come va detta: è una porcata. :D > > Per inciso: > > SELECT SUM(IF(tipo=1, importo, -importo)) FROM mov WHERE > (tipo=1 OR rif_tipo=2) AND data ="2007-01-01" era questa che mi doveva venire in mente. tnx!!! Ciao Marcello From domenico.lorusso a pleiade.it Wed May 9 10:32:13 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 9 11:07:46 2007 Subject: [Db] SUM che torna null e non 0 In-Reply-To: <46409328.2010400@vezz.it> References: <46409328.2010400@vezz.it> Message-ID: <4641870D.6050606@pleiade.it> Marcello Vezzelli ha scritto: > SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=2 GROUP > BY tipo > > Ora visto che non ci sono record di tipo 2, la query non mi ritorna > righe (ovvero mi ritorna null). > > Ora se faccio > > SELECT ( > (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=1 > GROUP BY tipo) + > (SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo=2 > GROUP BY tipo) > ) ma scusa..... SELECT SUM(importo) FROM mov WHERE data ="2007-01-01" AND tipo in (1,2) non basta? al di là della risposta teorica null+ qualcosa= null ciao! -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From simone a tomato.it Thu May 10 09:59:07 2007 From: simone a tomato.it (Simone Fumagalli) Date: Thu May 10 10:36:01 2007 Subject: [Db] Spostare un campo in MySQL Message-ID: <4642D0CB.2070600@tomato.it> Ciao a tutti. Ho una tabella mysql con dei dati in cui ho 3 campi campo_a campo_b campo_c Posso con un SQL dire a MySQL di spostare il campo in modo che la tabella divenga : campo_a campo_c campo_b Ciao e grazie Simone From michel a ziobudda.net Thu May 10 10:13:47 2007 From: michel a ziobudda.net (Davide Michel 'ZioBudda' Morelli) Date: Thu May 10 10:52:50 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <4642D0CB.2070600@tomato.it> References: <4642D0CB.2070600@tomato.it> Message-ID: <4642D43B.9080807@ziobudda.net> Simone Fumagalli ha scritto: > Ciao a tutti. > > Ho una tabella mysql con dei dati in cui ho 3 campi > > campo_a > campo_b > campo_c > > Posso con un SQL dire a MySQL di spostare il campo > in modo che la tabella divenga : > > campo_a > campo_c > campo_b > Ciao, tralasciando che non so' risponderti, ma a cosa ti serve spostare la colonna ? Non ti basta fare una SELECT campo_a, campo_c,campo_b ? Ciao -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From marcello a vezz.it Thu May 10 10:22:05 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Thu May 10 10:59:37 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <4642D0CB.2070600@tomato.it> References: <4642D0CB.2070600@tomato.it> Message-ID: <4642D62D.6010106@vezz.it> Simone Fumagalli ha scritto: > Ciao a tutti. > > Ho una tabella mysql con dei dati in cui ho 3 campi > > campo_a > campo_b > campo_c > > Posso con un SQL dire a MySQL di spostare il campo > in modo che la tabella divenga : > > campo_a > campo_c > campo_b Una soluzione (non credo sia la migliore ma è l'unica che mi viene in mente) è fare il dump della tabella con mysqldump, rinominare i campi con ALTER TABLE in modo da invertirli, poi effettuare l'import dei dati (senza ricreare la tabella). Alternativamente, puoi editare il file di dump invertendo le due righe nel codice che crea la tabella e utilizzare direttamente il dump. Ciao Marcello From simone a tomato.it Thu May 10 11:08:19 2007 From: simone a tomato.it (Simone Fumagalli) Date: Thu May 10 11:45:13 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <4642D43B.9080807@ziobudda.net> References: <4642D0CB.2070600@tomato.it> <4642D43B.9080807@ziobudda.net> Message-ID: <4642E103.4010408@tomato.it> Ordine nella struttura dati. :) Simone Davide Michel 'ZioBudda' Morelli wrote: > Ciao, tralasciando che non so' risponderti, ma a cosa ti serve spostare > la colonna ? > > Non ti basta fare una SELECT campo_a, campo_c,campo_b ? > > Ciao From michel a ziobudda.net Thu May 10 11:16:00 2007 From: michel a ziobudda.net (Davide Michel 'ZioBudda' Morelli) Date: Thu May 10 11:54:25 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <4642E103.4010408@tomato.it> References: <4642D0CB.2070600@tomato.it> <4642D43B.9080807@ziobudda.net> <4642E103.4010408@tomato.it> Message-ID: <4642E2D0.5050105@ziobudda.net> Simone Fumagalli ha scritto: > Ordine nella struttura dati. :) Giusto. M. -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From cesare a ngi.it Thu May 10 11:21:19 2007 From: cesare a ngi.it (Cesare D'Amico) Date: Thu May 10 11:58:23 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <4642E103.4010408@tomato.it> References: <4642D0CB.2070600@tomato.it> <4642D43B.9080807@ziobudda.net> <4642E103.4010408@tomato.it> Message-ID: <200705101121.19490.cesare@ngi.it> Alle 11:08, giovedì 10 maggio 2007, Simone Fumagalli ha scritto: > Ordine nella struttura dati. :) Ma... nel senso di "ordine mentale" quando la guardi, o che altro? Non vedo proprio l'utilità di una modifica del genere (magari sono io miope :-P) Ciaps ce -- Cesare D'Amico | Gruppo Volta Area tecnica | Web & Mkt Solutions Tel: 045 21 000 84 | Via Leida 8 - Verona Fax: 045 21 000 85 | http://www.gruppovolta.it From lookdown a gmail.com Thu May 10 11:24:40 2007 From: lookdown a gmail.com (Marco Guardabasso) Date: Thu May 10 12:03:15 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <200705101121.19490.cesare@ngi.it> References: <4642D0CB.2070600@tomato.it> <4642D43B.9080807@ziobudda.net> <4642E103.4010408@tomato.it> <200705101121.19490.cesare@ngi.it> Message-ID: <30a934720705100224j5bbefcd8ua5340a8d3eb56454@mail.gmail.com> Il 10/05/07, Cesare D'Amico ha scritto: > > Ma... nel senso di "ordine mentale" quando la guardi, o che altro? Non > vedo proprio l'utilità di una modifica del genere (magari sono io > miope :-P) > Magari legge i campi a dritto senza sapere prima quale sia il loro nome, e senza quindi ordinarli... Marco -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070510/28c5cfad/attachment.html From michel a ziobudda.net Thu May 10 11:29:41 2007 From: michel a ziobudda.net (Davide Michel 'ZioBudda' Morelli) Date: Thu May 10 12:08:03 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <200705101121.19490.cesare@ngi.it> References: <4642D0CB.2070600@tomato.it> <4642D43B.9080807@ziobudda.net> <4642E103.4010408@tomato.it> <200705101121.19490.cesare@ngi.it> Message-ID: <4642E605.4070706@ziobudda.net> Cesare D'Amico ha scritto: > Alle 11:08, giovedì 10 maggio 2007, Simone Fumagalli ha scritto: > >> Ordine nella struttura dati. :) >> > > Ma... nel senso di "ordine mentale" quando la guardi, o che altro? Io lo farei solo per un ordine mentale. Altrimenti non ha senso. Ma io sono storto. M. -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070510/3c335c38/attachment.htm From simone a tomato.it Thu May 10 11:32:56 2007 From: simone a tomato.it (Simone Fumagalli) Date: Thu May 10 12:10:03 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <200705101121.19490.cesare@ngi.it> References: <4642D0CB.2070600@tomato.it> <4642D43B.9080807@ziobudda.net> <4642E103.4010408@tomato.it> <200705101121.19490.cesare@ngi.it> Message-ID: <4642E6C8.5050405@tomato.it> Si, ordine mentale. So, ad esempio, che le chiavi sono i primi campi, mentre i created_at/created_by etc stanno alla fine. Simone Cesare D'Amico wrote: > Ma... nel senso di "ordine mentale" quando la guardi, o che altro? Non > vedo proprio l'utilità di una modifica del genere (magari sono io > miope :-P) From cristiano a verondini.it Thu May 10 12:34:34 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Thu May 10 13:13:15 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <4642E6C8.5050405@tomato.it> References: <4642D0CB.2070600@tomato.it> <4642D43B.9080807@ziobudda.net> <4642E103.4010408@tomato.it> <200705101121.19490.cesare@ngi.it> <4642E6C8.5050405@tomato.it> Message-ID: <5E11300C-B212-47F3-BC95-1BCB563510E3@verondini.it> On 10/mag/07, at 11:32, Simone Fumagalli wrote: > Si, ordine mentale. So, ad esempio, che le chiavi sono i primi > campi, mentre i created_at/created_by etc stanno alla fine. E' sbagliato fare affidamento alla posizione, seguirei più delle regole di naming. :) Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ 114 190] From simone a tomato.it Thu May 10 12:43:41 2007 From: simone a tomato.it (Simone Fumagalli) Date: Thu May 10 13:20:35 2007 Subject: [Db] Spostare un campo in MySQL In-Reply-To: <5E11300C-B212-47F3-BC95-1BCB563510E3@verondini.it> References: <4642D0CB.2070600@tomato.it> <4642D43B.9080807@ziobudda.net> <4642E103.4010408@tomato.it> <200705101121.19490.cesare@ngi.it> <4642E6C8.5050405@tomato.it> <5E11300C-B212-47F3-BC95-1BCB563510E3@verondini.it> Message-ID: <4642F75D.1060607@tomato.it> Si, ok. Il discorso della posizione è *solamente* per una questione di praticità e di velocità. Se sto guardando una applicazione o ne sto facendo il debug, sapere che il campo created_at è sempre alla fine (piuttosto che messo a caso in una tabella con 37 campi) mi aiuta a trovare subito l'informazione che sto cercando. Discorso analogo vale per le chiavi all'inizio. Ho capito che le posso mettere dove voglio, ma se voglio/devo vedere se la tabella è in relazione con altre tabelle guardo le chiavi (che sono all'inizio) e da li guardo il resto. Ovvio che da applicativo non vado a prendere i valori della tabella con indici numerici ! Simone Cristiano Verondini wrote: > E' sbagliato fare affidamento alla posizione, seguirei più delle > regole di naming. :) ----------------------------------------------------------------- From domenico.lorusso a pleiade.it Wed May 23 17:37:46 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 23 18:16:04 2007 Subject: [Db] =?iso-8859-15?q?heidi_slq_export_da_mysql_4=2E1_a_mysql_4?= =?iso-8859-15?q?=2E0_si_pu=F2=3F?= Message-ID: <46545FCA.7030005@pleiade.it> Come da oggetto sto avendo molti problemi a fare un'seporazione con heidisql da un mysql 4.1 a ad una versione 4 eventualmente ci sono altre soluzioni? -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed May 23 17:37:23 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 23 18:19:35 2007 Subject: =?ISO-8859-15?Q?Re=3A_=5BDb=5D_heidi_slq_export_da_m?= =?ISO-8859-15?Q?ysql_4=2E1_a_mysql_4=2E0_si_pu=F2=3F?= In-Reply-To: <46545FCA.7030005@pleiade.it> References: <46545FCA.7030005@pleiade.it> Message-ID: <46545FB3.40200@vezz.it> Domenico L. ha scritto: > Come da oggetto sto avendo molti problemi a fare un'seporazione con > heidisql da un mysql 4.1 a ad una versione 4 eventualmente ci sono > altre soluzioni? provato con phpmyadmin? magari una versione non nuovissima? Ciao Marcello From domenico.lorusso a pleiade.it Wed May 23 17:43:19 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 23 18:21:36 2007 Subject: =?ISO-8859-15?Q?Re=3A_=5BDb=5D_heidi_slq_export_da_m?= =?ISO-8859-15?Q?ysql_4=2E1_a_mysql_4=2E0_si_pu=F2=3F?= In-Reply-To: <46545FB3.40200@vezz.it> References: <46545FCA.7030005@pleiade.it> <46545FB3.40200@vezz.it> Message-ID: <46546117.2040500@pleiade.it> Marcello Vezzelli ha scritto: > Domenico L. ha scritto: >> Come da oggetto sto avendo molti problemi a fare un'seporazione con >> heidisql da un mysql 4.1 a ad una versione 4 eventualmente ci sono >> altre soluzioni? > > provato con phpmyadmin? > magari una versione non nuovissima? sto provando ad installarla uff... è che conosco poco come configurarlo -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed May 23 17:43:02 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 23 18:26:26 2007 Subject: =?ISO-8859-15?Q?Re=3A_=5BDb=5D_heidi_slq_export_da_m?= =?ISO-8859-15?Q?ysql_4=2E1_a_mysql_4=2E0_si_pu=F2=3F?= In-Reply-To: <46546117.2040500@pleiade.it> References: <46545FCA.7030005@pleiade.it> <46545FB3.40200@vezz.it> <46546117.2040500@pleiade.it> Message-ID: <46546106.4020305@vezz.it> Domenico L. ha scritto: > Marcello Vezzelli ha scritto: >> Domenico L. ha scritto: >>> Come da oggetto sto avendo molti problemi a fare un'seporazione con >>> heidisql da un mysql 4.1 a ad una versione 4 eventualmente ci sono >>> altre soluzioni? >> >> provato con phpmyadmin? >> magari una versione non nuovissima? > sto provando ad installarla uff... è che conosco poco come configurarlo molto facile, le versioni nuove hanno lo script che ti genera il config. Basta scaricarlo e salvarlo nella root di phpmyadmin. Basta aggiungere il db, metti u/p di root per fare prima, scegli "config" come autenticazione se sei in locale (altrimenti usa cookie e NON mettere u/p). Salva la config e sei operativo. Potrebbe servirti l'estensione mbstring abilitata. Ciao Marcello From domenico.lorusso a pleiade.it Wed May 23 17:48:16 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 23 18:26:47 2007 Subject: =?ISO-8859-15?Q?Re=3A_=5BDb=5D_heidi_slq_export_da_m?= =?ISO-8859-15?Q?ysql_4=2E1_a_mysql_4=2E0_si_pu=F2=3F?= In-Reply-To: <46546117.2040500@pleiade.it> References: <46545FCA.7030005@pleiade.it> <46545FB3.40200@vezz.it> <46546117.2040500@pleiade.it> Message-ID: <46546240.8040208@pleiade.it> Domenico L. ha scritto: > sto provando ad installarla uff... è che conosco poco come configurarlo |#2002 - Il server non risponde (o il socket del server locale MySQL non è correttamente configurato) è la macchina di produzione... vorrei evitare di fare cavolate mi sapete dire con esattezza dove mettere le mani, i dati di connessione ce li ho... | -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed May 23 17:57:25 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 23 18:38:27 2007 Subject: =?ISO-8859-15?Q?Re=3A_=5BDb=5D_heidi_slq_export_da_m?= =?ISO-8859-15?Q?ysql_4=2E1_a_mysql_4=2E0_si_pu=F2=3F?= In-Reply-To: <46546240.8040208@pleiade.it> References: <46545FCA.7030005@pleiade.it> <46545FB3.40200@vezz.it> <46546117.2040500@pleiade.it> <46546240.8040208@pleiade.it> Message-ID: <46546465.8030405@vezz.it> Domenico L. ha scritto: > Domenico L. ha scritto: >> sto provando ad installarla uff... è che conosco poco come configurarlo > |#2002 - Il server non risponde (o il socket del server locale MySQL > non è correttamente configurato) > > è la macchina di produzione... vorrei evitare di fare cavolate mi > sapete dire con esattezza dove mettere le mani, i dati di connessione > ce li ho... Il db ascolta su localhost o su tutte le interfacce? Sei sulla stessa macchina del db o su un'altra macchina? Se non sei sicuro verifica con un telnet sulla 3306. Hai una cosa del genere nel config.inc.php? Puoi cambiare a mano i valori che ti servono. Ciao Marcello From angelo.galleja a email.it Wed May 23 18:07:12 2007 From: angelo.galleja a email.it (Angelo Galleja) Date: Wed May 23 18:47:57 2007 Subject: =?ISO-8859-15?Q?Re=3A_=5BDb=5D_heidi_slq_export_da_m?= =?ISO-8859-15?Q?ysql_4=2E1_a_mysql_4=2E0_si_pu=F2=3F?= In-Reply-To: <46545FCA.7030005@pleiade.it> References: <46545FCA.7030005@pleiade.it> Message-ID: <465466B0.4090503@email.it> Domenico L. ha scritto: > Come da oggetto sto avendo molti problemi a fare un'seporazione con > heidisql da un mysql 4.1 a ad una versione 4 eventualmente ci sono altre > soluzioni? mysqldump --help cerca qualcosa riguardo la compatibilità From angelo.galleja a email.it Wed May 23 18:07:20 2007 From: angelo.galleja a email.it (Angelo Galleja) Date: Wed May 23 18:47:57 2007 Subject: =?ISO-8859-15?Q?Re=3A_=5BDb=5D_heidi_slq_export_da_m?= =?ISO-8859-15?Q?ysql_4=2E1_a_mysql_4=2E0_si_pu=F2=3F?= In-Reply-To: <46545FCA.7030005@pleiade.it> References: <46545FCA.7030005@pleiade.it> Message-ID: <465466B8.1010408@email.it> Domenico L. ha scritto: > Come da oggetto sto avendo molti problemi a fare un'seporazione con > heidisql da un mysql 4.1 a ad una versione 4 eventualmente ci sono altre > soluzioni? mysqldump --help cerca qualcosa riguardo la compatibilità From domenico.lorusso a pleiade.it Thu May 24 14:57:35 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Thu May 24 15:38:51 2007 Subject: =?ISO-8859-15?Q?Re=3A_=5BDb=5D_heidi_slq_export_da_m?= =?ISO-8859-15?Q?ysql_4=2E1_a_mysql_4=2E0_si_pu=F2=3F?= In-Reply-To: <46546465.8030405@vezz.it> References: <46545FCA.7030005@pleiade.it> <46545FB3.40200@vezz.it> <46546117.2040500@pleiade.it> <46546240.8040208@pleiade.it> <46546465.8030405@vezz.it> Message-ID: <46558BBF.9090003@pleiade.it> Marcello Vezzelli ha scritto: > Se non sei sicuro verifica con un telnet sulla 3306. > > /* Servers configuration */ > $i = 0; > > /* Server localhost (http) [1] */ > $i++; > $cfg['Servers'][$i]['host'] = 'localhost'; > $cfg['Servers'][$i]['extension'] = 'mysql'; > $cfg['Servers'][$i]['port'] = '3306'; > $cfg['Servers'][$i]['connect_type'] = 'tcp'; > $cfg['Servers'][$i]['compress'] = false; > $cfg['Servers'][$i]['auth_type'] = 'cookie'; > > /* End of servers configuration */ > ?> > > Hai una cosa del genere nel config.inc.php? > > Puoi cambiare a mano i valori che ti servono. > > Ciao > Marcello grazie 2^20!!! scusa per il ritardo ma sono stato un po incasinatissimo.. ieri non mi sono neppur accorto che cera un config.sample -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed May 30 09:51:00 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 30 10:35:56 2007 Subject: [Db] subquery e date Message-ID: <465D2CE4.20602@vezz.it> Ciao a tutti, ho una tabella con questa struttura: id // contatore data // datetime attivazione data_chiuso // datetime chiusura stato // intero, 0=aperto, 1=assegnato, 2=chiuso Vorrei fare una query che mi ritorna per ogni giorno quanti ticket sono stati assegnati e quanti chiusi, ovvero una cosa del tipo data assegnati chiusi 2007-05-16 5 /0/ 2007-05-21 1 /0/ 2007-05-22 1 /0/ 2007-05-23 1 /0/ 2007-05-25 8 3 2007-05-26 4 9 2007-05-27 3 1 2007-05-28 5 3 2007-05-29 15 5 2007-05-30 2 /0/ Ho risolto in questo modo: SELECT DATE(c1.data),q1 as assegnati,q2 as chiusi from ((SELECT stato,data,COUNT(id) as q1 FROM codici WHERE stato=1 GROUP BY DATE(data)) as c1) LEFT JOIN ((SELECT stato,data,count(id) AS q2 FROM codici WHERE stato=2 GROUP BY DATE(data)) as c2) ON DATE(c1.data)=DATE(c2.data) GROUP BY DATE(c1.data) Funziona bene, ma c'è un modo migliore per farlo? Ciao Marcello -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070530/3ab8f00c/attachment-0001.htm From domenico.lorusso a pleiade.it Wed May 30 10:33:44 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 30 11:16:11 2007 Subject: [Db] subquery e date In-Reply-To: <465D2CE4.20602@vezz.it> References: <465D2CE4.20602@vezz.it> Message-ID: <465D36E8.9020107@pleiade.it> Marcello Vezzelli ha scritto: > Ciao a tutti, > ho una tabella con questa struttura: > > id // contatore > data // datetime attivazione > data_chiuso // datetime chiusura > stato // intero, 0=aperto, 1=assegnato, 2=chiuso > > Vorrei fare una query che mi ritorna per ogni giorno quanti ticket > sono stati assegnati e quanti chiusi, ovvero una cosa del tipo non ho ben capito ma credo (come avevamo già visto) che select date_format(data,'d-m-Y') data, sum(if(stato=1,1,0) assegnato, sum(if(stato=2,1,0) chiuso from codici where stato>0 group by date_format(data,'d-m-Y') il group by sul date-format altrimenti ti fa un group by al secondo! per gli ordinamenti devi sbaterti un po' di più ma non è difficile -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed May 30 10:51:24 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 30 11:31:36 2007 Subject: [Db] subquery e date In-Reply-To: <465D36E8.9020107@pleiade.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> Message-ID: <465D3B0C.9040903@vezz.it> Domenico L. ha scritto: > >> Vorrei fare una query che mi ritorna per ogni giorno quanti ticket >> sono stati assegnati e quanti chiusi, ovvero una cosa del tipo [..] > il group by sul date-format altrimenti ti fa un group by al secondo! > per gli ordinamenti devi sbaterti un po' di più ma non è difficile Grazie mille! Riaggiustato un attimino: select date(data) as data, sum(if(stato=1,1,0)) as assegnato, sum(if(stato=2,1,0)) as chiuso from codici where stato>0 group by date(data) A parte che non è una porcata da leggere come quella che avevo proposto io, ha il vantaggio degli 0 al posto dei NULL. Sta cosa del sum non mi entra in testa :) Vado a comprarmi SQL92 for dummies. Ciao Marcello From marcello a vezz.it Wed May 30 10:53:45 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 30 11:34:11 2007 Subject: [Db] subquery e date In-Reply-To: <465D36E8.9020107@pleiade.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> Message-ID: <465D3B99.7040803@vezz.it> Domenico L. ha scritto: > > il group by sul date-format altrimenti ti fa un group by al secondo! > per gli ordinamenti devi sbaterti un po' di più ma non è difficile Per complicare la cosa.... Dal punto di vista didattico, se volessi aggiungere una colonna con i assegnati+chiusi lo stesso giorno? Si riesce a fare senza subquery? Ci ho pensato (poco) ma non mi viene in mente nulla. Ciao Marcello From domenico.lorusso a pleiade.it Wed May 30 11:02:54 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 30 11:50:23 2007 Subject: [Db] subquery e date In-Reply-To: <465D3B99.7040803@vezz.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> <465D3B99.7040803@vezz.it> Message-ID: <465D3DBE.2020109@pleiade.it> Marcello Vezzelli ha scritto: > Domenico L. ha scritto: >> >> il group by sul date-format altrimenti ti fa un group by al secondo! >> per gli ordinamenti devi sbaterti un po' di più ma non è difficile > > Per complicare la cosa.... Ma sei sicuro di avere solo delle date e non dei datetime? > Dal punto di vista didattico, se volessi aggiungere una colonna con i > assegnati+chiusi lo stesso giorno? > Si riesce a fare senza subquery? la soluzione semplice è quella giusta: select date(data) as data, sum(if(stato=1,1,0)) as assegnato, sum(if(stato=2,1,0)) as chiuso, sum(if(stato=1,1,0)) + sum(if(stato=2,1,0)) as ass_chiuso, #-> i dbms, anche quelli meno seri, # dovrebbero fare un controllo sull'identità delle proiezioni, #cioè si rende conto che sum(...) sono già calcolati, #quindi questa dovrebbe essere la soluzioni migliore in generale #oppure sum(if(stato=1 or stato=2,1,0)) as ass_chiuso1, #oppure sum(if(stato>0)) as ass_chiuso2 , #oppure in questo caso count(*) as ass_chiuso2 from codici where stato>0 group by date(data) Studiare il sql (3 anche mysql ne incorpora una buona parte) semplifica di molto la vita del programmatore. Altrimenti tanto vale usare i file :-) ciao -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed May 30 11:19:59 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 30 12:01:57 2007 Subject: [Db] subquery e date In-Reply-To: <465D3DBE.2020109@pleiade.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> <465D3B99.7040803@vezz.it> <465D3DBE.2020109@pleiade.it> Message-ID: <465D41BF.3090006@vezz.it> Domenico L. ha scritto: > >> >> Per complicare la cosa.... > Ma sei sicuro di avere solo delle date e non dei datetime? Sono dei datetime, tant'è che uso sempre date(data) per estrarmi solo la parte date. > > > select date(data) as data, sum(if(stato=1,1,0)) as assegnato, > sum(if(stato=2,1,0)) as chiuso, > > sum(if(stato=1,1,0)) + sum(if(stato=2,1,0)) as ass_chiuso, #-> i dbms, > anche quelli meno seri, > # dovrebbero fare un controllo sull'identità delle proiezioni, > #cioè si rende conto che sum(...) sono già calcolati, > #quindi questa dovrebbe essere la soluzioni migliore in generale Non mi va bene la somma di assegnati più chiusi... la cosa è + complicata. Un ticket potrebbe essere stato assegnato un giorno e chiuso il giorno dopo. Un esempio di quel che mi aspetto: data assegnati chiusi ass+chiusi 2007-05-16 1 0 0 2007-05-17 0 1 0 2007-05-18 1 1 1 2007-05-20 2 1 1 Credo debba intervenire anche l'id del codice altrimenti non si può fare. > > Studiare il sql (3 anche mysql ne incorpora una buona parte) > semplifica di molto la vita del programmatore. Sono d'accordo. Un buon libro da consigliarmi, da leggere sotto l'ombrellone? :) Ciao Marcello From domenico.lorusso a pleiade.it Wed May 30 11:46:57 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 30 12:29:27 2007 Subject: [Db] subquery e date In-Reply-To: <465D41BF.3090006@vezz.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> <465D3B99.7040803@vezz.it> <465D3DBE.2020109@pleiade.it> <465D41BF.3090006@vezz.it> Message-ID: <465D4811.40600@pleiade.it> Marcello Vezzelli ha scritto: > Domenico L. ha scritto: > Un ticket potrebbe essere stato assegnato un giorno e chiuso il giorno > dopo. > Un esempio di quel che mi aspetto: > > data assegnati chiusi ass+chiusi > 2007-05-16 1 > 0 0 > 2007-05-17 0 > 1 0 > 2007-05-18 > 1 > 1 > 1 > 2007-05-20 > 2 > 1 > 1 > > > > Credo debba intervenire anche l'id del codice altrimenti non si può fare. sì in quel caso sì e serve una self join select date(c2.date)-date(c1.date) giorni, sum(..) from codice c1 left join codici c2 on (c1.id=c2.id) where c1.stato=1 and c2.stato=2 non è completa perché la tua domanda iniziale è in contrasto con quella attuale ora stai chiedendo una cosa diversa che non hai specificato,che informazione vuoi ricavare? Giorno per giorno sapere quanti richeiste sono state assegnate quante sono state chiuse in generale e poi? quante sono chiuse in giornata? quanto è il tempo medio di chiusura? > > Sono d'accordo. > Un buon libro da consigliarmi, da leggere sotto l'ombrellone? :) urk sai che non so... io ho imparato su diversi testi nessuno dei quali veramente utile e soprattuto sul reference di sql di Oracle che è reperibile on line http://www.oracle.com/pls/db102/portal.portal_db?selected=3 Quello di sql, vedendo la sintassi ti da un idea di cosa si può fare, naturalmente ci sono cose non semplicissime da comprendere e alcune cose sono proprie del suo dialetto, ma spesso si trovano anche in altri dbms con nomi diversi ciao -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed May 30 12:08:17 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 30 12:50:10 2007 Subject: [Db] subquery e date In-Reply-To: <465D4811.40600@pleiade.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> <465D3B99.7040803@vezz.it> <465D3DBE.2020109@pleiade.it> <465D41BF.3090006@vezz.it> <465D4811.40600@pleiade.it> Message-ID: <465D4D11.1090303@vezz.it> Domenico L. ha scritto: > >> Credo debba intervenire anche l'id del codice altrimenti non si può >> fare. > sì in quel caso sì e serve una self join > > select date(c2.date)-date(c1.date) giorni, sum(..) > from codice c1 left join codici c2 > on (c1.id=c2.id) > where > c1.stato=1 and c2.stato=2 > > > non è completa perché la tua domanda iniziale è in contrasto con > quella attuale ora stai chiedendo una cosa diversa che non hai > specificato,che informazione vuoi ricavare? Si scusami è che quando ottengo quello che vorrei, mi viene sempre da chiedermi "e se volessi anche..." e non è detto che questo procedimento sia logico. Tra l'altro questi "requisiti" sono fini a se stessi, è proprio una mia curiosità. Immaginiamo di avere la tabella di cui prima, e di voler sapere: - quanti ticket aperti in un tal giorno - quanti ticket chiusi in un tal giorno - quanti ticket aperti e chiusi nello stesso giorno > > e poi? quante sono chiuse in giornata? quanto è il tempo medio di > chiusura? Il tempo di chiusura potrebbe essere un altro parametro interessante. > urk sai che non so... io ho imparato su diversi testi nessuno dei > quali veramente utile e soprattuto sul reference di sql di Oracle che > è reperibile on line > http://www.oracle.com/pls/db102/portal.portal_db?selected=3 Ho provato ad andare un po' a ispirazione, ho comprato un libro recente su mysql che francamente non è un gran che. Su 150 pagine ne salverei una 15 ina... Le reference online sono indispensabili per i quesiti mordi e fuggi, ma per affrontare un tema sistematicamente preferisco un buon libro.. il più è trovarlo :) Grazie mille per i consigli. Ciao Marcello From domenico.lorusso a pleiade.it Wed May 30 12:58:35 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 30 13:42:00 2007 Subject: [Db] subquery e date In-Reply-To: <465D4D11.1090303@vezz.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> <465D3B99.7040803@vezz.it> <465D3DBE.2020109@pleiade.it> <465D41BF.3090006@vezz.it> <465D4811.40600@pleiade.it> <465D4D11.1090303@vezz.it> Message-ID: <465D58DB.7070806@pleiade.it> Marcello Vezzelli ha scritto: > Domenico L. ha scritto: > > Si scusami è che quando ottengo quello che vorrei, mi viene sempre da > chiedermi "e se volessi anche..." e non è detto che questo > procedimento sia logico. > Tra l'altro questi "requisiti" sono fini a se stessi, è proprio una > mia curiosità. > > Immaginiamo di avere la tabella di cui prima, e di voler sapere: > - quanti ticket aperti in un tal giorno > - quanti ticket chiusi in un tal giorno > - quanti ticket aperti e chiusi nello stesso giorno uhm.... una cosa del genere forse fa al caso tuo select date(c1.date), avg(date(c2.date)-date(c1.date) ) "tempo medio", sum(if(stato=1,1,0)) "aperti in data",sum(if(stato=2,1,0)) "chiusi in data", sum(date(c2.date)-date(c1.date) =0,1,0) "risolti in giornata" from codice c1 left join codici c2 on (c1.id=c2.id and c1=1) where c1.stato>0 and c2.stato=2 group by date(c1.date) Okkio che tra un po' scatta la tariffa consulenza ;-P -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed May 30 13:30:42 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 30 14:10:47 2007 Subject: [Db] subquery e date In-Reply-To: <465D58DB.7070806@pleiade.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> <465D3B99.7040803@vezz.it> <465D3DBE.2020109@pleiade.it> <465D41BF.3090006@vezz.it> <465D4811.40600@pleiade.it> <465D4D11.1090303@vezz.it> <465D58DB.7070806@pleiade.it> Message-ID: <465D6062.7000706@vezz.it> Domenico L. ha scritto: > Marcello Vezzelli ha scritto: >> Domenico L. ha scritto: >> >> Si scusami è che quando ottengo quello che vorrei, mi viene sempre da >> chiedermi "e se volessi anche..." e non è detto che questo >> procedimento sia logico. >> Tra l'altro questi "requisiti" sono fini a se stessi, è proprio una >> mia curiosità. >> >> Immaginiamo di avere la tabella di cui prima, e di voler sapere: >> - quanti ticket aperti in un tal giorno >> - quanti ticket chiusi in un tal giorno >> - quanti ticket aperti e chiusi nello stesso giorno > > uhm.... una cosa del genere forse fa al caso tuo > > > select date(c1.date), avg(date(c2.date)-date(c1.date) ) "tempo medio", > sum(if(stato=1,1,0)) "aperti in data",sum(if(stato=2,1,0)) "chiusi in > data", > sum(date(c2.date)-date(c1.date) =0,1,0) "risolti in giornata" > from codice c1 left join codici c2 > on (c1.id=c2.id and c1=1) > where > c1.stato>0 > and c2.stato=2 > group by date(c1.date) Cerco di capire, vediamo un po'. Nella join imponi che c1.id=c2.id e c1.stato=1, poi nel where metti c1.stato>0 e c2.stato=2... mi sa che non tornerà mai nessuna riga. Al di là della query pronta copia incolla che non mi interessa, spiegami come procedi mentalmente. > Okkio che tra un po' scatta la tariffa consulenza ;-P LOL allora mi fermo, mi tengo il bonus per quando ho bisogno davvero :D Ciao Marcello From marcello a vezz.it Wed May 30 13:46:30 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed May 30 14:26:35 2007 Subject: [Db] subquery e date In-Reply-To: <465D6062.7000706@vezz.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> <465D3B99.7040803@vezz.it> <465D3DBE.2020109@pleiade.it> <465D41BF.3090006@vezz.it> <465D4811.40600@pleiade.it> <465D4D11.1090303@vezz.it> <465D58DB.7070806@pleiade.it> <465D6062.7000706@vezz.it> Message-ID: <465D6416.6050509@vezz.it> Marcello Vezzelli ha scritto: > Domenico L. ha scritto: >> Marcello Vezzelli ha scritto: >>> Domenico L. ha scritto: >>> >>> Si scusami è che quando ottengo quello che vorrei, mi viene sempre >>> da chiedermi "e se volessi anche..." e non è detto che questo >>> procedimento sia logico. >>> Tra l'altro questi "requisiti" sono fini a se stessi, è proprio una >>> mia curiosità. >>> >>> Immaginiamo di avere la tabella di cui prima, e di voler sapere: >>> - quanti ticket aperti in un tal giorno >>> - quanti ticket chiusi in un tal giorno >>> - quanti ticket aperti e chiusi nello stesso giorno Penso di esserci arrivato: select SUM(IF(c1.stato=1,1,0)) as assegnati, SUM(IF(c2.stato=2,1,0)) as chiusi, SUM(IF(c2.stato=2 AND date(c1.data)=date(c2.data_chiuso),1,0)) as asschiusi from codici as c1 left join codici as c2 on (c1.id=c2.id) where c1.stato=1 or c2.stato=2 group by date(c1.data) Autojoin su codici, imponendo stato=1 per c1 OPPURE stato=2 per c2. Da c1 conto quelli con stato 1, da c2 conto quelli con stato 2, poi controllo se c1.data=c2.data_chiuso e conto quelli chiusi nello stesso giorno di apertura. La media mi sa che va calcolata con una query separata, perché è diverso il raggruppamento. select date(data_chiuso),floor(AVG(data_chiuso-data)) from codici where stato=2 group by date(data_chiuso) Una roba così. Grazie delle dritte! Ciao Marcello From domenico.lorusso a pleiade.it Wed May 30 14:27:04 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed May 30 15:09:29 2007 Subject: [Db] subquery e date In-Reply-To: <465D6416.6050509@vezz.it> References: <465D2CE4.20602@vezz.it> <465D36E8.9020107@pleiade.it> <465D3B99.7040803@vezz.it> <465D3DBE.2020109@pleiade.it> <465D41BF.3090006@vezz.it> <465D4811.40600@pleiade.it> <465D4D11.1090303@vezz.it> <465D58DB.7070806@pleiade.it> <465D6062.7000706@vezz.it> <465D6416.6050509@vezz.it> Message-ID: <465D6D98.9090407@pleiade.it> Marcello Vezzelli ha scritto: > > Penso di esserci arrivato: > > select SUM(IF(c1.stato=1,1,0)) as assegnati, > SUM(IF(c2.stato=2,1,0)) as chiusi, > SUM(IF(c2.stato=2 AND date(c1.data)=date(c2.data_chiuso),1,0)) as > asschiusi > from > codici as c1 > left join > codici as c2 > on (c1.id=c2.id) > where c1.stato=1 or c2.stato=2 > group by date(c1.data) la where così è inutile devi usare la and le if sono più complesse del necessario > La media mi sa che va calcolata con una query separata, perché è > diverso il raggruppamento. > > select date(data_chiuso),floor(AVG(data_chiuso-data)) from codici > where stato=2 > group by date(data_chiuso) ma scusa tu hai nellos tesso record data di attivazione e di chiusura? se è così ottenere quelleo che volevi è banale select date(c1.date), sum(if(stato=1,1,0)) "attualmente aperti",sum(if(c1.stato=2,1,0)) "chiusi", sum(if(date(c1.datechiusura)-date(c1.date) =0,1,0)) "risolti in giornata" , sum(date(c1.datechiusura)-date(c1.date)) "media" from codice c1 where c1.stato>0 group by date(c1.date) Io avevo supposto una struttura così: idCodice data stato quindi ogni cambio di stato provoca un inserimento nella tabella > Al di là della query pronta copia incolla che non mi interessa, > spiegami come procedi mentalmente. Ok direttamente dal corso sql per newbe DImenticare sql ragionare per algebra e per operatori Prima si guarda cosa prendere (from) poi su cosa selezionare il where quindi quale sott'insieme delle sorgenti avrò quindi la on (la clausola di join) Nell'esempio di cui sopra, supponendo la strutura sopracitata facevo questo: Prima prendo tutte le operazioni (c1.stato>0) Poi prendo tutte le chiusure (c2.stato=2) quindi c1 sono tutte le operazioni e c2 sutte le chiusure poi le metto in join le aperture (c1.stato=1) con le rispettive chiusure (c1.id=c2.id) proietto 1 per ogni apertura 1 per ogni chiusura facendo la differnze delle 2 date ottengo la media e se le 2 date coincidono sono state risolte in giornata quindi metto 1 ciao -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From domenico.lorusso a pleiade.it Thu May 31 10:45:09 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Thu May 31 11:27:47 2007 Subject: [Db] UK e NULL Message-ID: <465E8B15.1000307@pleiade.it> Ciao all, scopro a mie spese che per mysql (ver 4.0) che i campi facenti parte di un Unique index se valorizzati a null estromettono il record in questione dal controllo di univocità.... che bello.... ciao.... :-( -- Domenico L. icq: 645 44 861 - msn: strahd@jumpy.it per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.]