aiuto query mysql

dux86

Utente Attivo
20 Lug 2007
97
0
0
Ciao ragazzi, ho un problemino che con il vostro aiuto mi potrebbe far risparmiare ore di lavoro...

il problema è il seguente:

ho creato una tabella che la riporto

CREATE TABLE IF NOT EXISTS `controllo` (
`id` int(11) DEFAULT NULL,
`data` varchar(100) DEFAULT NULL,
`time` varchar(80) DEFAULT NULL,
`accespoint` varchar(80) DEFAULT NULL,
`card` varchar(80) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dump dei dati per la tabella `controllo`
--

INSERT INTO `controllo` (`id`, `data`, `time`, `accespoint`, `card`) VALUES
(12198, '2/6/2010', '12.11', 'entrata', '722FD4'),
(12201, '2/6/2010', '12.22', 'uscita', '722FD4'),
(12197, '2/5/2010', '11.33', 'entrata', '521F6D'),
(12206, '2/6/2010', '14.19', 'uscita', '521F6D'),
(12206, '2/6/2010', '14.19', 'uscita', '521F6D'),
(12233, '2/6/2010', '14.19', 'uscita', '521F6D'),
......
(12199, '2/6/2010', '12.12', 'entrata', '54FC89'),
(12200, '2/6/2010', '12.21', 'uscita', '54FC89'),
(12202, '2/6/2010', '13.27', 'entrata', '521ECC'),
(12203, '2/6/2010', '13.43', 'uscita', '521ECC'),
(12204, '2/6/2010', '13.54', 'entrata', '192545'),
(12205, '2/6/2010', '14.10', 'uscita', '192545'),
(12207, '2/6/2010', '15.42', 'entrata', '225115'),
(12208, '2/6/2010', '16.24', 'entrata', '192549');

ovviamente con diverse migliaia di righe... qui ne metto poche, per farvi capire meglio.

vorrei una query che mi tira fuori solo la differenza della colonna 'time'+'uscita' meno 'time'+'entrata' con la chiave primaria 'card' in base all'id' sequenziale, e in + mi tira fuori solo quelli con la differenza maggiore di 30 minuti.

ovvero, card=722FD4 --> 12.22(uscita) - 12.11(entrata) = 0.11minuti (che non va bene come risultato voluto..)

mentre
card = 521F6D --> 14.19(uscita) - 11.33(entrata) = 2 ore 26 minuti (quello che voglio io :mavieni: )
'id' accesso al varco --> 12197... 12206 deve essere in sequenza, ovvero nn mi deve fare la differenza tra:
(12233, '2/6/2010', '14.19', 'uscita', '521F6D') meno (12206, '2/6/2010', '14.19', 'uscita', '521F6D'), ma come sopra citato.



mi rendo conto che la query è quasi impossibile, ma tuttavia sperò che qualcuno c'è la fa :ilpirata:
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Non sarà di sicuro la soluzione definitva, ma questa potrebbere essere un inizio:
Codice:
SELECT  * FROM 
(
 (
  SELECT DISTINCT STR_TO_DATE(CONCAT(data, ' ', time),'%d/%m/%Y %H.%i') as entrata, data, time, card 
  FROM `controllo` 
  WHERE accespoint = 'entrata'
 ) as t1 
 INNER JOIN 
 (
  SELECT DISTINCT STR_TO_DATE(CONCAT(data, ' ', time), '%d/%m/%Y %H.%i') as uscita, data, time, card
  FROM controllo
  WHERE accespoint = 'uscita'
 ) as t2
 ON t1.card = t2.card
)
WHERE (uscita - entrata) > 1800

Ma i dati riportati sono esempi o un estratto dei dati reali?
Perchè questi mi sembrano particolarmente strani:

(12206, '2/6/2010', '14.19', 'uscita', '521F6D'),
(12206, '2/6/2010', '14.19', 'uscita', '521F6D'),
(12233, '2/6/2010', '14.19', 'uscita', '521F6D'),

I primi due hanno addirittura lo stesso ID (la tabella non ha un chiave primaria). Mentre il terzo ha un ID diverso, ma il resto coincide con gli altri due.
A questi corrisponde poi una sola entrata:
(12197, '2/5/2010', '11.33', 'entrata', '521F6D'),
 
Discussioni simili
Autore Titolo Forum Risposte Data
B Aiuto query mysql in php PHP 1
F aiuto per query UNIONE mysql MySQL 2
C AIUTO Query Database MySql PHP 5
R Aiuto query mysql PHP 14
E Aiuto per query PHP 8
R Aiuto con le query MS Access 2
I Aiuto query MySQL 8
D aiuto con query PHP 1
A [risolto] aiuto integrazione query per db calcistico MySQL 2
S aiuto con le query PHP 0
S aiuto con query MySQL 10
P Aiuto con query "SELECT" PHP 6
J Aiuto per una query di eliminazione PHP 5
A Aiuto con Funzione/Query PHP 3
I Aiuto su query PHP 1
D Aiuto Query difficile MySQL 3
I Aiuto query PHP 2
E Aiuto per query PHP 8
X eseguire due query aiuto PHP 1
D Aiuto Query PHP 5
T Aiuto sub query Database 0
S aiuto x query... PHP 0
A Aiuto, query per Access 2003 MS Access 5
S aiuto in query di aggiornamento Database 0
R Aiuto. come modificare il contenuto di una query a campi incrociati Database 0
R Aiuto ripristino sito web Presentati al Forum 0
L Aiuto con DataGridView Visual Basic 1
F Aiuto! cambio immagine di sfondo al cambio pagina HTML e CSS 2
I aiuto urgente per thunderbird Posta Elettronica 0
I aiuto per outlook Posta Elettronica 0
D aiuto funzioni javascript Javascript 1
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
D Aiuto CSS in ELEMENTOR - Cambiare un testo CMS (Content Management System) 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
K Aiuto con file audio in html HTML e CSS 1
G Script notifiche dekstop aiuto Javascript 0
P Aiuto per rendere un Bot Telegram Privato PHP 1
M Un aiuto da chi ha apple Mac e Software 0
P Richiesta di aiuto Presentati al Forum 1
A Aiuto per pagina php PHP 0
M Questa pagina non carica correttamente Google Maps: aiuto!! HTML e CSS 1
I Aiuto php Dependent Lookup PHP 0
M AIUTO ESERCIZIO JAVA Javascript 1
G Aiuto con htaccess e rewriterule PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
M Aiuto con inserimento immagini WordPress 6
D aiuto schermata photoshop Photoshop 0
L Aiuto per programma web php/mySQL PHP 2
A Aiuto php colore diverso PHP 10
L Aiuto creazione menu mancante WordPress 0

Discussioni simili