Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Query su db access, contare record mese precedente e mese corrente
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      markuz User Attivo • ultima modifica di

      Query su db access, contare record mese precedente e mese corrente

      Salve dovrei fare un conteggio semplice di record su una tabella ma non riesco a trovare la via giusta.

      Devo fare visualizzare il risultato di 2 conteggi sulla tabella "tk" , un conteggio del mese corrente e uno del mese precedente.

      Devono essere "statotk=chiuso", quindi dovrebbe essere :

      sql = "SELECT COUNT(*) AS RECORD_COUNT FROM tk where statotk='Chiuso' and ?????? <---mese precedente?

      sql = "SELECT COUNT(*) AS RECORD_COUNT FROM tk where statotk='Chiuso' and ?????? <---mese corrente (cioè dal 1 ad oggi)?

      Grazie a tutti.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • A
        artcava Moderatore • ultima modifica di

        Se nel db c'è un campo data (come immagino) puoi sfruttare le funzioni sql sulle date, come Month() e ```
        Year()

        
        La funzione che recupera l'anno sulla data ti serve ovviamente per fissare l'anno per cui ti serve il mese... Con gli aggiustamenti del caso se sei a dicembre o gennaio...
        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • M
          markuz User Attivo • ultima modifica di

          Applicato alla stringa che ho postato come faccio? Ho fatto così ma non và...
          sql = "SELECT COUNT(*) AS RECORD_COUNT FROM tk where statotk='Chiuso' and datapost=month()"

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • A
            artcava Moderatore • ultima modifica di

            OK, vediamo...

            sql = "SELECT COUNT(*) AS RECORD_COUNT FROM tk where statotk='Chiuso' and month(datapost) = 1"
            

            In questo modo verifichi che il mese del campo datapos sia gennaio, ora devi confrontare anche l'anno, altrimenti prenderesti in considerazione tutti i mesi di gennaio di tutti gli anni, mentre tu vuoi solo quello del 2013, quindi:

            sql = "SELECT COUNT(*) AS RECORD_COUNT FROM tk where statotk='Chiuso' and month(datapost) = 1 and year(datapost) = 2013"
            ```. 
            
            Per le altre combinazioni ovviamente è necessario costruire una query che tenga conto di tutte le possibilità
            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              markuz User Attivo • ultima modifica di

              Ok, vorrei che il mese e l'anno non dovessi specificarli ma che fossero sempre l'ultimo mese del corrente anno...come faccio?

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • M
                markuz User Attivo • ultima modifica di

                Forse così?

                sql = "SELECT COUNT(*) AS RECORD_COUNT FROM tk where statotk='Chiuso' and month(datapost) = month(now)-1" ?
                Però non visualizzo un record di dicembre...

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • A
                  artcava Moderatore • ultima modifica di

                  A gennaio no, perché month(now) è 1, se fai 1-1 non viene 12... 😄
                  Per questo ti dicevo che devi usare anche l'anno

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • M
                    markuz User Attivo • ultima modifica di

                    Invece contare dei record in una tabella?

                    Ho utilizzato questo: sql = "SELECT COUNT() AS RECORD_COUNT FROM ticket where statoticket='Sospeso'"
                    Però vorrei contare sia sospeso e backoffice...
                    Ho provato così : sql = "SELECT COUNT(
                    ) AS RECORD_COUNT FROM ticket where statoticket='Sospeso' and 'backoffice'"

                    Ma non và....

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • A
                      artcava Moderatore • ultima modifica di

                      Se backoffice è un possibile stato del Ticket, prova così:

                      sql = "SELECT COUNT(*) AS RECORD_COUNT FROM ticket where statoticket='Sospeso' or statoticket='backoffice'"
                      
                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • M
                        markuz User Attivo • ultima modifica di

                        Ottimo funziona come volevo, grazie!
                        Ora altro quesito...vorrei che un utente entrasse in una pagina e sul db la colonna "in_carico" venga scritta col suo username e quando esca dalla pagina venga cancellato. Sono riuscito a far scrivere il nome nella cella, ma non riesco a farla "svuotare" quando esce dalla pagina. Ho provato :
                        <%sql="DELETE in_carico FROM Ticket where in_carico="'& username & ' " %> sulla pagina dove và l'utente quando esce ma non và...

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • A
                          artcava Moderatore • ultima modifica di

                          Dovresti fare così

                          sql="UPDATE Ticket SET in_carico = '' where in_carico="'& username & "'"
                          

                          ma credo, se ho capito cosa contiene la tabella Ticket, tu debba gestire anche l'identificativo del Ticket, cioé il campo che identifica univocamente il Ticket stesso...

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • M
                            markuz User Attivo • ultima modifica di

                            Il fatto è che in entrata sulla pagina il ticket è identificato, ma se clicca su "indietro" e torna su una pagina generica diciamo, vorrei che liberasse nel db la voce "in_carico". Quindi pensavo di mettere uno script nella pagina generica che se l'utente è su quella non deve esserci il suo username nella colonna "in_carico". Potrebbe andare bene?
                            Però non funge.

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • A
                              artcava Moderatore • ultima modifica di

                              Quindi provo a fare il giro per capire se ho capito...
                              Hai una pagina con l'elenco dei ticket, se l'utente ne apre uno appena entri nella pagina di dettaglio del ticket metti nel campo "in_carico" lo Username che hai attualemnte in sessione.
                              Quando l'utente dovesse uscire dal Ticket senza aver fatto nulla vorresti che il Ticket non glik rimanesse assegnato.

                              Allora le strade che mi immagino io possono essere:

                              • L'utente entra nel Ticket con due possibili modalità, "vedi dettaglio" oppure "prendi in carico" cioé due differenti bottoni, così è lui che decide. Nel dettaglio ovviamente può ancora prenderlo in_carico, oppure rimetterlo nello stato precedente se l'avesse in_carico.
                              • L'utente naviga nei Ticket senza mai assegnarselo, a meno che non lo "lavori", a questo punto nel passo successivo (che non so qual'è...) lo mette in_carico
                              • ASP.NET, tutte le pagine derivano da una classe base (di tipo System.Web.Page) che nel Load o nell'Init rimuovono l'assegnazione se presente. Tutte tranne la pagina di dettaglio che fa l'esatto contrario.
                              • ASP Classic, tutte le pagine, tranne quella di dettaglio hanno una include che fa la stessa cosa...
                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • M
                                markuz User Attivo • ultima modifica di

                                Tutto corretto. Però vorrei capire che include mettere in asp classico...

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • A
                                  artcava Moderatore • ultima modifica di
                                  <!--#include file="rimuoviticket.inc"-->
                                  

                                  Dentro inserisci le istruzioni per rimuovere il ticket assegnato all'utente...

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • M
                                    markuz User Attivo • ultima modifica di

                                    Certo, però lì che ho l'intoppo. Esiste un modo per eliminare l'username se presente in tutta la colonna "in_carico"?

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • A
                                      artcava Moderatore • ultima modifica di

                                      Sì, nel modo che ti avevo già scritto...

                                      sql="UPDATE Ticket SET in_carico = '' where in_carico="'& username & "'"
                                      

                                      Se non funziona può voler dire che la variabile username non è valorizzata, oppure perché c'è un errore...
                                      Nel primo caso fatti stampare la variabile sulla pagina con ```
                                      Response.Write(username)

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • M
                                        markuz User Attivo • ultima modifica di

                                        Fatto ma non rimuove il nome, stampando

                                        Response.Write(username)esce il mio username correttamente.

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • A
                                          artcava Moderatore • ultima modifica di

                                          Che tipo di chiamata fai al DB, puoi postare tutto lo script?

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • M
                                            markuz User Attivo • ultima modifica di

                                            Scusami non capisco. Ho semplicemente messo nella pagina dove tornano gli utenti un include con "sql="UPDATE Ticket SET in_carico = '' where in_carico="'& username & "'""

                                            Intendi questo?

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti