Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26

Discussione: Select count Order by

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    60

    Select count Order by

    Salve a tutti,

    ho questo code e non riesco ad aggiungere il comando ORDER BY perchè mi da errore.

    code:

    codice:
    SELECT COUNT(Commenti.idfoto) AS TotaleCommenti
    FROM Commenti INNER JOIN Immagini ON Immagini.idfoto=Commenti.idfoto
    WHERE Immagini.categoria='A'
    ORDER BY Immagini.IdFoto DESC
    esiste qualke altro modo dove poter inserire ORDER BY tabella.campo DESC?

  2. #2
    a che ti serve ordinare una query che restituisce un solo record?

    cmq per rispondere alla tua domanda puoi anche fare:

    "... ORDER BY 1 DESC"
    xxx

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    60
    grazie per la risposta ma nn va comunque

    cercherò di spiegarmi meglio ho due tabelle IMMAGINI e COMMENTI

    IMMAGINI
    idfoto(contatore)*
    idcategoria
    immagine

    COMMENTI
    Idcommenti(contatore)
    idfoto(numerico)*
    commento

    * campi relazionati uno a molti

    nella homepage mostro le ultime foto inserite per ogni categoria tipo A, B e C. Accanto vorrei mostrare il numero di commenti che ogni foto ha ricevuto ed ho provato in questo modo

    codice:
    SELECT COUNT(Commenti.idfoto) AS TotaleCommenti
    FROM Commenti INNER JOIN Immagini ON Immagini.idfoto=Commenti.idfoto
    WHERE Immagini.categoria='A'
    che però mi restituiesce un n. totale di commenti non esatti tipo nella categoria A l'ultima foto inserita contiene 4 commenti la stringa ne conta 20 perchè?

  4. #4
    beh, nel modo in cui hai fatto ti conta tutti i commenti di tutte le foto della categoria A, e l'ordinamento non ti serve a nulla..
    se vuoi contare solo quelli di una foto devi specificare l'idfoto nella clausola where. se invece vuoi contare tutti i commenti di tutte le foto puoi fare così:

    codice:
    SELECT COUNT(Commenti.idfoto) AS TotaleCommenti, Immagini.immagine
    FROM Commenti INNER JOIN Immagini ON Immagini.idfoto=Commenti.idfoto
    WHERE Immagini.categoria='A'
    GROUP BY Immagini.immagine
    ORDER BY 1 DESC
    xxx

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    60
    il numero totale dei commenti deve essere riferito all'ultima foto inserita in una categoria tipo CATEGORIA A e IdFOTO XXX (ultima inserita) come faccio ad inserirlo nella clausola WHERE?

  6. #6
    puoi basarti sul valore del campo contatore del campo foto, l'ultimo è il più grande.
    qualcosa del tipo:
    codice:
    SELECT TOP 1 COUNT(Commenti.idfoto) AS TotaleCommenti, Immagini.immagine, immagini.idfoto
    FROM Commenti INNER JOIN Immagini ON Immagini.idfoto=Commenti.idfoto
    WHERE Immagini.categoria='A'
    GROUP BY Immagini.immagine, immagini.idfoto
    ORDER BY immagini.idfoto DESC
    xxx

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    60
    Non va comunque, ...mi chiedevo se questo code:

    codice:
    SELECT COUNT(Commenti.idfoto) AS TotaleCommenti
    FROM Commenti INNER JOIN Immagini ON Immagini.idfoto=Commenti.idfoto
    WHERE Immagini.categoria='A'
    mi mostra il n. totale di tutti i commenti inseriti in quella categoria nella clausola WHERE oltre a filtrare la categoria, si puo' inserire una INNER JOIN che prelevi anche l'ultimo idfoto della tabella IMMAGINI?

  8. #8
    Originariamente inviato da maxx02
    Non va comunque, ...mi chiedevo se questo code:

    codice:
    SELECT COUNT(Commenti.idfoto) AS TotaleCommenti
    FROM Commenti INNER JOIN Immagini ON Immagini.idfoto=Commenti.idfoto
    WHERE Immagini.categoria='A'
    mi mostra il n. totale di tutti i commenti inseriti in quella categoria nella clausola WHERE oltre a filtrare la categoria, si puo' inserire una INNER JOIN che prelevi anche l'ultimo idfoto della tabella IMMAGINI?
    è più o meno quello che ho fatto sopra, e a me funziona.
    che problema ti da?
    xxx

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    60
    ciao Alethesnake,

    ritorno dopo un po' visto che adesso ho ripreso questo argomento, il prb è questo mi da il numero di commenti presenti esatti solo per la prima categoria tipo (a) le altre vengono prese a caso.

  10. #10
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    se usi sqlserver
    puoi fare così

    codice:
     
    select IMMAGINI.immagine ,  IMMAGINI.idfoto 
    , count(COMMENTI.idfoto) 
    from IMMAGINI  
    left join COMMENTI on (IMMAGINI.idfoto =  COMMENTI.idfoto)
    where IMMAGINI.idfoto = (select top 1 idfoto from IMMAGINI as IMMAGINITot where IMMAGINITot.idcategoria = IMMAGINI.idcategoria order by IMMAGINITot.idfoto desc)
    group by  IMMAGINI.immagine ,  IMMAGINI.idfoto
    Forza la magica ROMA

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.