+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21

Discussione: select top ...

  1. #11
    Post
    4,740
    Blogs
    12
    Ciao Fausto,
    Prova ad omettere l'ordinamento della query.

    SQL2 = "SELECT TOP 2 * FROM elencofile WHERE categoria = " & id_cat

    A presto,
    Giuseppe Leone

    Solitamente questo messaggio di errore viene restituito all'esecuzione della query SQL quando non vengono specificati correttamente dei campi.

  2. #12
    faustonenci non è in linea Novello
    Luogo
    Italy
    Post
    12
    restituisce sempre lo stesso errore:

    Tipi di dati non corrispondenti nell'espressione criterio.
    /magnani/elenco/elenco3.asp, line 21

    riga 20: SQL2 = "SELECT TOP 2 * FROM elencofile WHERE categoria = " & id_cat
    riga 21: set rs2 = oConn.execute(SQL2)

  3. #13
    Post
    4,740
    Blogs
    12
    A questo punto mi sorge un dubbio...
    Siamo sicuri che la tabella si chiama *elencofile* e il campo categoria *categoria* sia di tipo numerico ?

    Ultima soluzione, ometti anche *TOP 2* e vedi cosa accade.

    A presto,
    Giuseppe [img]smileys/smiley5.gif[/img]

  4. #14
    faustonenci non è in linea Novello
    Luogo
    Italy
    Post
    12
    ti confermo che la tabella e' giusta
    anche perche' il response.write id_cat funziona
    il problema e' che il campo categoria e' di testo
    e i dati sono:
    Agata
    Ancestrale
    Isabella
    Isabella Diluito
    Topazio

    che sono nomi prori

  5. #15
    Post
    4,740
    Blogs
    12
    Ah, ecco il problema...
    Adesso si spiega tutto, modifica la query SQL in:

    codice:
    SQL2 = "SELECT TOP 2 * FROM elencofile WHERE categoria = '" & id_cat & "' ORDER BY categoria ASC
    Aggiungi gli apici... A presto,
    Giuseppe

  6. #16
    faustonenci non è in linea Novello
    Luogo
    Italy
    Post
    12
    Eureka ora funziona
    Ma...
    c'e' sempre un Ma dopo un Eureka
    non mi restituisce solo i primi 2 record per ogni categoria
    ma bensi' tutto il contenuto ordinato e raggruppato per categoria
    almeno ora siamo riusciti a fargli vedere il primo record set

  7. #17
    Post
    4,740
    Blogs
    12
    Aggiungi anche un campo data inserimento e ordina per:

    ORDER BY categoria, data DESC

    ok, ti visualizzera' gli ultimi 2 records aggiunti per categoria e data inserimento.

    A presto [img]smileys/smiley2.gif[/img]

  8. #18
    faustonenci non è in linea Novello
    Luogo
    Italy
    Post
    12
    grazie mille dell'aiuto
    ora vedo se mi lasciano modificare la struttura del db

    grazie ancora per i preziosi insegnamenti
    saluti fausto

  9. #19
    faustonenci non è in linea Novello
    Luogo
    Italy
    Post
    12
    Tovato il problema senza modificare il DB
    era ORDER BY nella seconda SELECT che andava in conflitto con SELECT TOP ora funziona modificando il numero di SELECT TOP riesco a visualizare il numero corretto di record

    mi sono accorto pero' che ora non riesco ad ordinare i file per ID di inserimento
    se io volessi visualizzare solo gli ultimi 2 inserimenti per ogni categoria
    non so come filtrarli
    perche se uso ORDER BY nella prima SELECT vado in conflitto con DISTINCT
    e se lo uso nella seconda vado in conflitto con SELECT TOP

    qindi dovrei eseguire una prima SELECT che ordina i record
    secondo ID
    poi la seconda SELECT che esegue il DISTINCT
    ed infine una terza che esegue SELECT TOP

    oppure riuscire a lavorare nella prima SELECT con una sintassi particolare
    (a me sconosciuta)



    comunque sono contento perche' qualcosa l'ho imparato grazie al vostro forum

    grazie mille ancora per la disponibilita'

  10. #20
    Post
    4,740
    Blogs
    12
    Ciao Fausto,
    ORDER BY che va in conflitto con DISTNCT ? Questa e' nuova... Personalmente avro' utilizzato questa soluzione *troppe* volte, credimi, nessun conflitto.

    Per ovviare al tuo problema (viva le ASP) dovresti ricorrere ad una modifica del codice.

    Omettere TOP 2 ed esguire la query in modo normale, segui l'esempio:

    codice:
    <%
    strSQL = "SELECT * FROM ..."
    set rs = server.createobject("ADODB.RecordSet")
    rs.maxrecords = 5 'Indica quanti record visualizzare
    rs.open strSQL, oConn
    
    while not rs.eof
    
    rs.movenext
    wend
    
    rs.close
    set rs = nothing
    %>
    Tutto qui, il codice l'ho scritto al volo, non so se funziona... Questo e' un altro metodo per selezionare un determinato numero di Records.

    A presto,
    Giuseppe Leone

+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo

Discussioni simili

  1. [Javascript]Popolare select tramite altro select
    Da Eugene nel forum HTML, CSS, Javascript, AJAX
    Risposte: 4
    Ultimo Post: 25-03-2008, 23:36
  2. Array vuoto. Errore run-time "13" 0 "9"
    Da gmax74 nel forum Visual Basic 6
    Risposte: 7
    Ultimo Post: 16-05-2006, 14:55
  3. Problema con select
    Da andreathedove nel forum ASP 3.0, ASP .Net
    Risposte: 3
    Ultimo Post: 31-08-2005, 11:21

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi