2012-03-01 9 views
6

Mi chiedo se questo è possibile. Sto cercando di identificare i record in cui è presente un modello nei dati.come identificare o ricodificare un modello nei dati con SQL

esempio una tabella con i campi ID , DATA_DTE (solo i record al giorno), SPEED.

desidero identificare quando il campo SPEED gocce di almeno 4 e mantiene per almeno 3 giorni consecutivi di fila

**ID**..**DATA_DTE**...**SPEED** 
1........Jan-1............8 
1........Jan-2............9 
1........Jan-3............4 
1........Jan-4............4 
1........Jan-5............4 
1........Jan-6............7 
1........Jan-7............8 
1........Jan-8............9 

Da quanto detto, io fondamentalmente vogliono avere una query SQL restituire l'ID. Ad esempio "1" in quanto sopra ad es.

Qualcuno sa come posso impostare la mia query SQL per restituire questi ID che corrispondono a un modello come questo? Sarò in esecuzione in accesso ms 2003.

+2

Perché il voto verso il basso? Lo neutralizzerò, ma sono curioso. – Fionnuala

+0

Penso che avresti bisogno di VBA per questo. – Fionnuala

+0

@Remou Double contrastandolo. :) –

risposta

3

Non so accesso ms, ma potrebbe fare il lavoro:

SELECT DISTINCT id 
FROM     data AS d1 
INNER JOIN data AS d2 ON d1.id = d2.id AND DateAdd("d",+1,d1.data_dte) = d2.data_dte 
INNER JOIN data AS d3 ON d1.id = d3.id AND DateAdd("d",+2,d1.data_dte) = d3.data_dte 
INNER JOIN data AS d4 ON d1.id = d4.id AND DateAdd("d",+3,d1.date_dte) = d4.data_dte 
WHERE d1.speed - d2.speed >= 4 
  AND d1.speed - d3.speed >= 4 
  AND d1.speed - d4.speed >= 4 
+0

Sostituisci '" d "' con ''d'' e poi potrebbe fare il lavoro;) –

+0

Non senza molte parentesi, non lo farà. – Fionnuala

+0

@Norla - Sì, ci sono più ID nella tabella. E ci sono date nell'intervallo completo. – user1243468

Problemi correlati