Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Mhhhh!!! facile non è certamente
    del resto la vita è bella perche è difficile ..........

    Farlo solamente con SQL è un casino, certamente ci si arriverebbe ma diventa una roba accademica

    ci potrebbe aiutare una funzione di Access che scorre i record in un recordset e da la risposta

    dimentichiamoci dell'Id Univoco perche non siamo sicuri che sia progressivo con le date
    abbiamo la nostra univocita nella coppia Nome + Data e ce la facciamo bastare

    quindi data una tabella di nome T1 con i campi:
    - Nome ---- Testo
    - Data ----- DataOra
    - Valore ---- Testo

    creiamo in un modulo questa funzione personalizzata:
    codice:
    Option Compare Database
    Option Explicit
    
    Public Function ContaValori(Nomx As String) As Integer
    
    Dim Valx As String
    Dim Conx As Integer
    
    Dim dbx As DAO.Database
    Dim rs1 As DAO.Recordset
    
    Set dbx = DBEngine(0)(0)
    Set rs1 = dbx.OpenRecordset("SELECT Valore FROM T1 WHERE (Nome='" & Nomx & "') ORDER BY Data DESC;", dbOpenDynaset)
    
    rs1.MoveFirst
        Valx = rs1.Fields("Valore").Value
        'Conx = 0
            Do Until rs1.EOF
            If Valx = rs1.Fields("Valore").Value Then
                Conx = Conx + 1
            Else
                ContaValori = Conx
                rs1.MoveLast
            End If
            rs1.MoveNext
        Loop
    
    On Error Resume Next
    rs1.Close
    dbx.Close
    Set rs1 = Nothing
    Set dbx = Nothing
    
    End Function



    adesso (con l'aiuto della funzione) la query diventa banale
    codice:
    SELECT 
    T1.Nome, 
    Max(T1.Data) AS MaxData, 
    ContaValori([Nome]) AS ContValor
    FROM 
    T1
    GROUP BY 
    T1.Nome, 
    ContaValori([Nome])
    ;
    certamente da ottimizzare ma .......
    Facci sapere

    .
    Ultima modifica di nman; 25-05-2017 a 07:36

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.