Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Esclusione record interni ad un ora rispetto al precedente

    Ciao a tutti..

    Da questa tabella mySQL:
    codice:
    ID	Dist 	Date	 	Hour	 
    9	VT 	17/10/2009 	12:02:28
    8	PE 	16/10/2009 	19:04:55
    7	PE 	16/10/2009 	17:53:40
    6	TE 	16/10/2009 	14:33:47
    5	TE 	16/10/2009 	14:11:02
    4	TE 	16/10/2009 	13:24:34
    3	CH 	16/10/2009 	08:43:51  
    2	VT 	16/10/2009 	05:08:43 
    1	FR 	16/10/2009 	00:14:05

    Devo importare in questa seconda tabella mySQL i seguenti record:

    codice:
    ID	Dist 	Date	 	Hour	 
    9	VT 	17/10/2009 	12:02:28
    8	PE 	16/10/2009 	19:04:55
    7	PE 	16/10/2009 	17:53:40
    4	TE 	16/10/2009 	13:24:34
    3	CH 	16/10/2009 	08:43:51  
    2	VT 	16/10/2009 	05:08:43 
    1	FR 	16/10/2009 	00:14:05
    Devo escludere dall'importazione gli ID 5 e 6 della prima tabella perchè la data e l'ora non superano 1 ora rispetto all' ID 4 ( sono 3 righe che hanno lo stesso Distretto ).

    E' giusto dire che devo prendere sempre il record più vecchio se quelli uguali e successivi sono inferiori ad un'ora?

    Come posso risolvere?
    Grazie-

  2. #2
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    putroppo non so come aiutarti, perchè non riesco a comprendere la tua domanda.

  3. #3
    sicuro che debba essere escluso anche il 6°?

  4. #4
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da optime
    sicuro che debba essere escluso anche il 6°?

    Si, scusa ma è stato un errore di copia/incolla:

    codice:
    ID	Dist 	Date	 	Hour	 
    9	VT 	17/10/2009 	12:02:28
    8	PE 	16/10/2009 	19:04:55
    7	PE 	16/10/2009 	17:53:40
    6	TE 	16/10/2009 	14:23:47
    5	TE 	16/10/2009 	14:11:02
    4	TE 	16/10/2009 	13:24:34
    3	CH 	16/10/2009 	08:43:51  
    2	VT 	16/10/2009 	05:08:43 
    1	FR 	16/10/2009 	00:14:05

  5. #5
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da barney09
    putroppo non so come aiutarti, perchè non riesco a comprendere la tua domanda.
    E' più facile di quanto possa sembrare:

    Queste righe:

    codice:
    6	TE 	16/10/2009 	14:23:47
    5	TE 	16/10/2009 	14:11:02
    4	TE 	16/10/2009 	13:24:34
    Appartengono allo stesso Distretto (TE) ma le righe successive alla riga 4 hanno una data ed un orario che ricadono all'interno di un'ora rispetto a 16/10/2009 13:24:34.

    Devo prendere la riga 4 ed escludere tutte quelle righe che hanno lo stesso distretto con data/ora inferiore alla riga 4, cioè queste le escludo:

    codice:
    6	TE 	16/10/2009 	14:23:47
    5	TE 	16/10/2009 	14:11:02
    Questa riga invece la includo:

    codice:
    11	TE 	16/10/2009 	14:53:47
    Mi segui?

  6. #6
    passa per una tabella temporanea, dove calcoli la differenza di tempo tra un record e il precedente. ma prima fa' una ricerca nel forum, non mi suona nuova

  7. #7
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da optime
    passa per una tabella temporanea, dove calcoli la differenza di tempo tra un record e il precedente. ma prima fa' una ricerca nel forum, non mi suona nuova
    Sul forum ho cercato ma non ho trovato nulla...

    Che significa differenza di tempo tra un record e il precedente ?

    E se invece di importare questa operazione di esclusione la faccio in fase di selezione dei records? Quale strada è meno difficile?

  8. #8
    Date e Hour sono due campi distinti? di che tipo?

  9. #9
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da optime
    Date e Hour sono due campi distinti? di che tipo?

    Campi distinti:

    1) Data = Date
    2) Hour = VARCHAR(10)

  10. #10
    fatto con M$SQL. sistemalo

    codice:
    SELECT * FROM Interventi ORDER BY ID
    
    SELECT 
    	T1.*
    	-- , T2.*
    	, DateDiff(n,T2.HOUR,T1.HOUR) AS Differenza
    INTO
    	#TMP
    FROM
    	Interventi T1 JOIN Interventi T2 ON T1.DIST=T2.DIST AND T1.DATE=T2.DATE
    ORDER BY
    	T1.ID
    
    -- SELECT * FROM #Tmp
    
    DELETE FROM #TMP WHERE Differenza <0
    SELECT * INTO #Tmp2 FROM #TMP WHERE Differenza>60
    
    DELETE FROM #TMP WHERE ID IN (SELECT ID FROM #TMP WHERE Differenza >0 AND Differenza<60)
    DELETE FROM #TMP WHERE ID IN (SELECT ID FROM #TMP GROUP BY ID HAVING COUNT(ID)>1)
    
    INSERT INTO #Tmp SELECT * FROM #Tmp2
    SELECT * FROM #Tmp ORDER BY ID
    -- SELECT * FROM #Tmp2
    
    DROP TABLE #Tmp
    DROP TABLE #Tmp2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.