Visualizzazione dei risultati da 1 a 5 su 5

Discussione: ESPERTI SQL AIUTO!!!

  1. #1
    Ci lavoro da 2 giorni e non ci sono ancora riuscito, allora:

    Quest sono le mie tabelle

    TABELLA CATEGORIE:

    id = chiave primaria
    categoria = nome della categoria
    ordine = ordine di apparizzione
    attivo = flag che rende la categoria attiva o meno


    TABELLA NOTIZIE:

    id = chiave primaria
    idCategoria = codice categoria di appartenenza
    titolo = titolo
    notizia = notizia
    data = data inserimento
    foto = path della relativa foto
    visibile = notizia visibile o meno


    Mi serve la stringa SQL che restituisca un recordSet con:

    LE NOTIZIE(VISIBILI) PIU' RECENTI DI CIASCUNA CATEGORIA (ATTIVA) ORDINATE A SECODNA DELL'ORDINE DI APPARIZIONE DELLA TABELLA CATEGORIE.

    Il recordSet dovrebbe contenere un numero di record pari al numero di categorie attive.

    Grazie!


  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    363
    Assumendo T_Notizie.IdCategoria come Foreign Key in T_Notizie:

    SELECT T_Notizie.*,T_Categorie.Categoria
    FROM T_Notizie,T_Categorie
    WHERE
    T_Notizie.IdCategoria = T_Categorie.Id
    AND
    T_Notizie.Visibile = 'YES' -- al posto di YES metti il tuo valore
    AND
    T_Categorie.Attiva = 'YES' -- al posto di YES metti il tuo valore
    ORDER BY
    T_Notizie.Data DESC,
    T_Categorie.Ordine;

    > ..numero di record uguale al numero di categorie
    Non ho capito bene il motivo per cui ti serve un recordset di quel tipo. Con questa query ottieni un numero di record pari al numero di notizie; il raggruppamento per Categoria te lo fai poi a livello di lunguaggio host (VB, C, ecc..).
    [Messaggio modificato da Squid70 il 02-07-2001 alle 09:25 PM]

  3. #3
    numero di record = numero di catevorie attive


    Io non voglio tutte le notizie, ma solo la più recente di ogni categoria

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    46

    Non è il massimo ma potrebbe esserti d'aiuto.

    Per selezionare il record che contiene la notizia più recente usa questa query:

    select * from nome_tabella where data = (select max(data) from nome_tabella)
    gs

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    43

    Ecco la soluzione!

    Per avere quello che desideri devi utilizzare i cursori, e le tabelle temporanee, scarica lo zip qui sotto per vedere come fare....

    scarica il codice da: http://www.lucamilan.it/soluzione_quesito_news.zip

    ciao...

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.