Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di arw
    Registrato dal
    Dec 2007
    Messaggi
    149

    query sql date e storico

    Ciao,
    ho un problema a una query perchè devo considerare anche uno storico e questo confonde.
    Nel merito è questo; ho 3 tabelle:
    tab_utenti, tab_storico, tab_inserimenti

    tab_utenti ha:
    idutente
    cognome
    nome
    idsocieta

    tab_storico ha:
    idutente
    idsocieta
    datainizio
    datafine

    tab_progetti ha:
    idprogetto
    progeto
    idsocieta

    tab_inserimenti ha:
    idinserim
    idutente
    descrizionegiorno
    datagiorno
    oregiorno

    io devo prendere gli Inserimenti dal al degli utenti di una societa.
    Ma devo anche verificare la storicizzazione, nel caso che un utente abbia cambiato societa per cui la data di inizio sarà diversa.

    come posso fare?


    esempio:
    tab_utenti ha:
    idutente 222
    cognome PIPPO
    idsocieta 2


    tab_storico ha:
    idutente 222
    idsocieta 1
    datainizio 01-01-2000
    datafine 28-02-2011

    idutente 222
    idsocieta 2
    datainizio 01-03-2011
    datafine null


    tab_progetti ha:
    idprogetto 55
    progeto progUno
    idsocieta 1


    tab_inserimenti ha:
    idinserim 1122
    idutente 222
    idprogetto 55
    descrizionegiorno ho telefonato al cliente
    datagiorno 14-01-2011
    oregiorno 8

    idinserim 3344
    idutente 222
    idprogetto 55
    descrizionegiorno ho mandato email al cliente
    datagiorno 18-06-2011
    oregiorno 8


    Cercando come ho detto gli Inserimenti dal 01-01-2011 al 07-10-2011 degli utenti della societa 2 per conto della societa 1 (considerando anche lo storico) io mi aspetto di estrarre:
    pippo
    progetto 55 - progUno
    18-06-2011
    8
    ho mandato email al cliente


    ma non so come fare la query perchè mi dia questa estrapolazione
    ...

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    268
    ma se un utente ha fatto un progetto per una società e poi ne ha fatto un altro per una'altra società, devi visualizzarli entrambi giusto?

    se si ti conviene fare 2 query distinte:
    1)query legge i dati attuali
    2) query legge i dati dello storico
    poi metti le query in union

    Ciao

  3. #3
    Utente di HTML.it L'avatar di arw
    Registrato dal
    Dec 2007
    Messaggi
    149
    è che io ho gia questa query esistente che non considera lo storico
    e non so come aggiustarla...
    codice:
    select t1.*, t2.nomeprogetto as progetto,t3.cognomeditta as cliente,t4.cognome as cognome ,t4.nome as nome , ts1.descrizione as societautente,ts2.descrizione as societaprogetto from 
    (SELECT t4.cognome as cognome ,t4.nome as nome,
         tr.idprogetto,
         tr.idutente,
         round(cast(sum(ore*60+minuti)as float)/480,2) as orelavorate
    FROM
         tab_report tr,
         tab_progetti t2,
         tab_utenti t4
    WHERE
     1 = 1 
    and t4.idsocieta=2 and t2.idsocieta=1
     AND data >= '01-01-2011'
     AND data <= '10-04-2011'
    and idtipoprogetto!=99
     and tr.idprogetto = t2.idprogetto
     and tr.idutente = t4.idutente
     and not t4.idsocieta = t2.idsocieta
    GROUP BY t4.cognome,t4.nome ,
         tr.idprogetto,
         tr.idutente
    ) t1,
    tab_progetti t2,
    tab_clienti t3,
    tab_utenti t4,
    tab_societa ts1,
    tab_societa ts2
    where 
    t1.idprogetto = t2.idprogetto and 
    t1.idutente = t4.idutente and
    t3.idcliente = t2.idcliente and
    not t4.idsocieta = t2.idsocieta and
    t4.idsocieta = ts1.idsocieta and
    t2.idsocieta = ts2.idsocieta
    ORDER BY
         cliente ASC ,
         t2.progetto ASC

    ho pensato a fare una cosa cosi:
    codice:
     
    select tu.idutente, tfc.datainizio
    from tab_utenti tu
    inner join tab_storicofascia tfc on tu.idfasciacosto=tfc.idfasciacosto and tu.idutente=tfc.idutente
    where 1=1
    in questo modo ho l'utente e la sua datainizio che è quella che dovrei usare .
    ma come la inglobo alla query!?

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.