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

    [VB6] query SQL

    salve a tutti

    ho un db con campo1,campo2,campo3,campo4,campo5,altri_campi

    campo5 è una data.

    ho bisogno di selezionare tutti i campi di ogni record con campo1=cp1,campo2=cp2,campo3=cp3 e se ci sono più record prendere quello con campo5 maggiore (cioè più recente visto che è una data).

    avevo pensato a

    codice:
    SELECT *
    FROM tabella
    WHERE campo1=cp1 And campo2=cp2 And campo3=cp3 And campo4=cp4And AND campo5=
    (
       SELECT max(campo5) FROM tabella
       WHERE campo1=cp1 And campo2=cp2 And campo3=cp3 And campo4=cp4
    )
    ORDER BY campo1,campo2;
    ma non è corretto perchè la subquery trova il max di tutto il db quindi se ci sono record con data diversa anche se andrebbero presi non li prende.

    avevo pensato a GROUP BY ...ma poi non mi prende tutti i campi....

    help..
    grazie cmq.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non so se ho capito bene (fra l'altro non comprendo la natura di cp1, cp2, cp3 ... sono altri campi ? Variabili fornite dal programma ? Costanti ? ... Ovviamente varia la sintassi ... comunque ...) ma potresti scrivere

    codice:
    SELECT TOP 1 *
    FROM tabella
    WHERE campo1=cp1 And campo2=cp2 And campo3=cp3 And campo4=cp4
    ORDER BY campo5 DESC;
    In particolare, quello che non e' chiaro e' se dei record estratti a te interessa solo il primo o tutti ...

  3. #3
    cp1..cpn sono costanti ..... sono frutto di altre ricerche su db
    ...fai finta che sono stringhe.

    il problema è che con il criterio di ricerca in where potrei avere più record (ma è possibile anche che sia 1 solo )che abbiano tutti i campi di ricerca uguali e data diversa ed in questo caso devo prendere quella con data maggiore.

    io vorrei sapere se è possibile farlo con una query o devo elaborare i dati con vb

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non capisco quello che vuoi dire ...

    Forse e' meglio che tu faccia un esempio pratico ...

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.