Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Select valore vicino

  1. #1
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506

    Select valore vicino

    Ciao a tutti.

    Ho una serie di record con campo numerico; es.
    record 1 Camponuemerico=500
    record 2 Camponuemerico=750
    record 3 Camponuemerico=200
    record 4 Camponuemerico=1500
    record 5 Camponuemerico=57700
    ecc.

    Quidi ho un form con campo dove l'utente mette un valore.

    Qando vado a selezionare il record, vorrei selezionare quello che ha il valore più vicino tra tutti a quelli presenti. Esempio, ora faccio così:

    valore=455
    select * from tabella where Camponuemerico="&valore&"

    e non seleziono nulla poichè non ci sono record con tale valore. MA come posso selezionare quello con il nmero più vicino a 455 (nell'esempio soprqa il primo record).
    Esiste un metodo?
    Grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Non so se esista qualche funzione ma facendo due query con TOP 1 (se usi Access) con campo => al tuo valore e campo <= al tuo valore ottieni i due valori più vicini per eccesso e per difetto.
    A quel punto la loro differenza rispetto al tuo valore ti farà scegliere il "migliore" ovvero quello più vicino.

    Roby

  3. #3
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Ciao.

    In effetti stavo cercando qualcosa del genere, con > e <. Il problema però è che non posso selezionare un solo record.

    Per semplicità ho omesso che possono essere estratti più record, in base ad altri campi. In effetti ora la select è qualcosa del tipo:

    select * from tabella where Camponuemerico="&valore&" and campo2="valore due" ecc.

    Qualche altro escamotage quel potrebbe essere?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    recordo o campi? Non ho capito.
    La TOP la puoi usare con *.

    Roby

  5. #5
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Una serie di record. Diciamo che la condizione del valore vicino è solo una delle consizioni. Per cui il risultato potrebbe essere:

    record 1 Camponuemerico=500
    record 2 Camponuemerico=750
    record 3 Camponuemerico=200

  6. #6
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Diciamo che dovrebbe essere una sorta di Like per valori numerici.

  7. #7
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Non credo che ci sia una soluzione specifica. M'è venuta un'ida, confronterò con un valore > e < di valore+X e valore-X. Dovrebbe andare.
    Ciao

  8. #8
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Scusa Roby, in effetti la soluzione che avevo pensato non va bene. Ora a mente fresca ti descrivo meglio la situazione.

    Il DB è access, con una struttura tipo la seguente:

    Campo1 Campo2 Campo3 Campo4
    Record1 1 22 22 5000
    Record2 1 22 22 6000
    Record3 1 22 22 5500
    Record4 1 22 22 7000

    Il campo incriminato, numerico è Campo4.
    Attualmente seleziono in questo modo:
    codice:
    valore=request("valore") ' e vale 5600
    SELECT * from rabella where campo1=1 and campo2=22 and campo4<valore
    Il mio scopo è quello di selezionare solo il RECORD3. Invece lui mi seleziona sia il RECORD1 che RECORD1.

    Come potrei risolvere?

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