Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    query con Max e valore non corretto

    Ragazzi ho nel DB una serie di record con il valore id_protocollo(non Contatore) che aumenta di un'unità ad ogni inserimento di un record, ameno che non si verifichi una condizione.
    Le ultime due righe mi riportano i valori:
    12
    0
    adesso con il codice che vedete qui sotto vorrei recuperare il valore massimo di id_protocollo, ma invece di restituirmi 12, mi restituisce 0.
    codice:
            MySQL = "SELECT Max(id_protocollo) AS MaxProt, id_direzione, ID_contatti " & _
                    "FROM tab_contatti WHERE id_direzione = 1 " & _
                    "GROUP BY id_direzione, ID_contatti"
    
            MyCMD = New Data.OleDb.OleDbCommand(MySQL, Conn)
            MyDR = MyCMD.ExecuteReader
    
            If MyDR.HasRows = True Then
                Do While MyDR.Read
                    protocollo = MyDR.Item("MaxProt") + 1
                    LblProtocollo.Text = protocollo
                Loop
            Else
                protocollo = "1"
                LblProtocollo.Text = protocollo
            End If
    Cosa ho sbagliato?

    Grazie

  2. #2
    La mia risposta riguarda esclusivamente la sintassi SQL. Mi sembra tutto regolare, effettivamente la funzione Max va usata con la clausola GROUP BY e non devi includere il campo con quale calcoli la Max. Sono campi Int32? Inoltre non è che hai in giro un order nella clausola GROUP BY?

    Aspetta ... Ma non è che ricevi piu' di un record, fai debug e dimmi il count del Reader ... Mi sorge un dubbio cioè che ti restituisca piu' di un record ...

  3. #3
    cia raffaeu grazie per la risposta,
    ma purtroppo non ho capito come effettuare il debug che miconsigli.
    Potresti spiegarmi meglio come farE?

    Grazie

  4. #4
    Up!
    Ragazzi riuscite a darmi una mano per piacere?

    Grazie

  5. #5
    Forse ho risolto ragazzi.
    Sembra che questa query dia il risultato sperato
    codice:
    SELECT Max(tab_contatti.id_protocollo) AS MaxProt" & _
                    " FROM(tab_contatti)WHERE (((tab_contatti.id_direzione)=1))"
    probabilmente l'errore era dovuto al campo ID_contatti quando andavo a raggruppare.

  6. #6
    Bene per il debug se crei una Stored la puoi debuggare direttamente da Visual Studio

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 © 2026 vBulletin Solutions, Inc. All rights reserved.