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

    sqlserver - selezione campo estero alla clausola distinct

    Salve, sto cercando di risolvere una query che mi restituisca solo alcuni campi con una clausola distict, però ho bisogno anche di un altro campo che, se inserito all'interno della clausola mi fa visualizzare anche record non voluti.

    Il DB è sql server.
    I campi della tabella sono:
    id_path, id_annuncio, id_concessionaria, path_immagini

    la select che ho fatto è:
    SELECT DISTINCT(id_annuncio), path_immagini FROM path_immagini
    WHERE id_concessionaria like '236'
    in questo modo mi restituisce anche il campo path_immagini però io avrei bisogno qualcosa del tipo: SELECT DISTINCT(id_annuncio) FROM path_immagini
    WHERE id_concessionaria like '236'

    Ringrazio anticipatamente chi potrà darmi una dritta per l'aggregazione dei campi di cui ho bisogno.

  2. #2
    dici "avrei bisogno di qualcosa del tipo" e poi metti una query... cos'ha che non va? perché non usi quella?

  3. #3
    Ciao, ti ringrazio per l'interessamento, in pratica non uso la prima select postata cioè

    "SELECT DISTINCT(id_annuncio), path_immagini FROM path_immagini WHERE id_concessionaria like etc.. etc..."

    perchè la clausola distinct la applica anche al campo path_immagini e ciò mi fa restituire anche record non voluti.

    Non uso la seconda query perchè, anche se il risultato è quello giusto non posso prendere il valore corrispondente del campo path_immagini.

    Una soluzione che avevo pensato era quella di due select annidate, nella prima prendevo i miei id_annuncio con la clausola distinct e all'interno del ciclo utilizzavo una select che mi selezionava esclusivamente la riga con quell'id_annuncio.
    Questo non funziona perchè ho scoperto che i aspx(vb) non è possibile aprire due recordset contemporaneamente come facevo in classic asp....

  4. #4
    posti un esempio della tua tabella e di cosa vorresti in output?

  5. #5
    Ti allego delle immagini dei record che estrapolo con le varie query, io avrei bisogno solo dei tre record (o dei record distinti) dell'id_annuncio "immagine 1" con il relativo path_immagine come nell'immagine 3.

    Grazie in anticipo per l'interessamento
    Immagini allegate Immagini allegate

  6. #6
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Ma essendo i campi path_immagine tutti diversi (pure a parità di id_annuncio) come fai a scegliere quello da visualizzare ? Se vuoi un solo record con id_annuncio = 262 come scegliamo il campo path_immagine ? ne va bene uno qualsiasi ?

    Puoi provare allora

    SELECT id_annuncio, max(path_immagini) FROM path_immagini WHERE id_concessionaria like etc.. etc... GROUP BY id_annuncio

  7. #7
    Grazie mille comas, funziona alla grande.
    Andava bene anche un qualsiasi campo anche se modificando la query in questo modo so riuscito ad ottenere il primo record inserito e cioè la prima immagine.

    Ho postato il codice che potrebbe essere utile

    SELECT id_annuncio, min(path_immagini) as path_img FROM path_immagini WHERE id_concessionaria like etc.. etc... GROUP BY id_annuncio

    con min, estrapolo il primo record
    path_immagini non viene definito quindi: as path_img

    Grazie ancora.

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.