Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    5

    Aiuto per una query sql

    Salve,
    ho un database mysql con due tabelle : conferenza e lavoro

    conferenza ha un acronimo, un nome ed una data
    lavoro ha un campo ID e un campo Tipo che puo essere o un 'Articolo' o una 'Tool Demo'

    ad ogni conferenza possono essere presentati n lavori

    devo scrivere del codice php che mi legga in input un anno solare e stampi in output gli acronimi ed i nomi delle conferenze, unitamente alla percentuale di presentazioni relative a 'Tool Demo', ma solo per le conferenze in cui tale percentuale sia stata superiore al 20%

    Come si traduce questa query in SQL?

    GRAZIE
    Sirio

  2. #2
    Se sono solo questi i campi non vedo relazioni tra le due tabelle.

    Io agirei in questo modo:
    - aggiungerei un ID univoco anche alla tabella "conferenza"
    - aggiungerei un campo "Id_conferenza" nella tabella lavoro che contenga l'id relativo alla conferenza.
    - sostituisco il campo tipo, mettendo 2 campi tinyint Articolo e ToolDemo (settandoli Articolo ad 1 quando è un articolo oppure ToolDemo ad 1 quanto è un tool demo)

    In questo modo creo un vincolo tra le due tabelle e sò ad esempio quel lavoro in quale conferenza è stato presentato. Questo però se la tu esigenza è di tipo uno a molti, ovvero 1 conferenza può avere presentati più lavori ma non viceversa.

    Poi per la query puoi fare un qualcosa del genere:

    "SELECT min(acronimi), min(nomi), sum(ToolDemo)*100/(sum(Articolo)+sum(ToolDemo)) as percentuale FROM conferenza INNER JOIN lavoro ON conferenza.id = lavoro.id_conferenza WHERE YEAR(data) = '2007' AND percentuale >= 20 GROUP BY conferenza.id"

    Fammi sapere se funziona
    ciao.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    5
    Innanzitutto grazie per la risposta, ti descrivo più precisamente la composizione delle tabelle(non le ho scritte prima perchè credevo che non erano importanti ai fini della query)

    conferenza
    -acronimo(chiave primaria)
    -nome
    -città
    -nazione
    -data inizio
    -data fine
    -general chair

    lavoro
    -ID(chiave primaria)
    -speaker
    -autore di rif.
    -affiliazione
    -email
    -tipo
    -numPagine
    -pagPubb
    -sist.operativo
    -spazio su disco
    -conferenza(chiave esterna)
    -data
    -ora

    Se il tipo è articolo allora si riempiono solo i campi numPagine e pagPubb e sist.operativo e spazio su disco rimangono nulli.
    Se il tipo è Tool Demo allora succede al contrario

    La query sql è la stessa che ti ho scritto prima. Non so ancora se funziona, ti faccio sapere
    GRAZIE
    Sirio

  4. #4
    se usi acronimo come chiave primaria puoi inserire solo un record con quell'acronimo!

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.