Query per ottenere prima data dove tutti i codici hanno un record - Visual Basic Tips and Tricks - Forum - Altro - Database
Questo sito utilizza cookie tecnici e di terze parti. Continuando la navigazione sul nostro sito accetti l'uso dei cookie. Per saperne di più leggi l'informativa sui cookie.   


Query per ottenere prima data dove tutti i codici hanno un record
Ultimo messaggio: 31 mag 2019 11:44 di Giorgio Leonardi. 2 Risposte.
Stampa gradevole
Solo gli utenti registrati possono rispondere ad una discussione.
Avatar
Oscar
Messaggi: 298
Iscritto dal: 30 apr 2012 12:16
Utente
Utente

28 mag 2019 18:05
Vorrei cortesemente un aiuto per costruire una query che mi restituisca la prima data dove tutti i codici che intendo filtrare siano presenti con il proprio record.

Faccio un esempio.

Vorrei sapere, filtrando per A oppure B oppure C, la prima data comune.

A    20/05/2019
B    20/05/2019
D    20/05/2019
--------------------
A    21/05/2019
B    21/05/2019
C    21/05/2019
D    21/05/2019
--------------------
A    22/05/2019
B    22/05/2019
C    22/05/2019
D    22/05/2019

Vorrei che la query mi restituisse 21/05/2019.

Grazie.

    Avatar
    Diego Cattaruzza [exMVP]
    Messaggi: 7197
    Iscritto dal: 08 set 2012 11:22
    Team
    Team

    30 mag 2019 17:10

    se non ci sono duplicati di codice-data, ti basta impostare il count dei codici (where count(data)=4)

    oppure verificare l'esistenza di codice-data (ma mi pare più lunga)

      Diego Cattaruzza
      ex MVP Visual Basic .Net
      blog: Uncensured
      Avatar
      Giorgio Leonardi
      Messaggi: 1100
      Iscritto dal: 30 apr 2012 00:10
      Utente
      Utente

      31 mag 2019 11:44

      Però se non ho capito male se anche non ci fosse stato il record con D sarebbe andato bene il 21 maggio perchè lui voleva a - b - c, anche se mi lascia perplesso il fatto che abbia usato il termine oppure quando dall'esempio pare che intendesse E visto che cerca un giorno dove sono presenti contemporaneamente tutti e tre.

      Se quindi ho capito bene la soluzione deve prevedere la presenza di quei tre caratteri, perchè usando solo il count potrebbero esserci dei record con altre lettere, quindi

      Select Giorno from tabella group by giorno where count(giorno) = 3 having codice in "ABC" order by giorno

       

      ovviamente dopo l'having ci sarà la lista dei caratteri accettati

        Solo gli utenti registrati possono rispondere ad una discussione.