Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Sollecitare inserimento record

    Ciao.

    Ho un problema che non so come risolvere.

    Per ogni giorno devono essere caricati un max di 4 records entro le ore 10:00.

    Ad ogni record caricato è associato un acronimo, ad esempio un giorno completo è questo:

    codice:
    ID	ACRONIMO	DATA
    1	AAA		07/07/2008
    2	BBB		07/07/2008
    3	CCC		07/07/2008
    4	DDD		07/07/2008
    Adesso dovrei sollecitare quegli acronimi ad inserire il loro record per la data di oggi.

    Supponiamo che oggi la situazione di caricamento sia questa ( incompleta ):

    codice:
    ID	ACRONIMO	DATA
    1	AAA		07/07/2008
    2	BBB		07/07/2008
    3	CCC		07/07/2008
    Manca l'acronimo DDD nel caricamento giornaliero come faccio ad individuare nella tabella che AAA, BBB e CCC sono già presenti mentre manca DDD ?

    Con una query SQL COUNT riesco a sapere se gli acronimi sono minori di 4 per quel giorno ma per sapere quello che manca ?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    up

  3. #3
    il metodo più pedestre è (se conosci tutti e 4 gli acronimi) fare 4 query di selezione e vedere quale ti da EOF

    è dispendioso però

    un altro sistema è dividere per due

    AAA BBB CCC DDD

    ------------------------------

    cerchi AAA e BBB
    se EOF

    cerchi AAA
    se EOF

    è AAA

    -----------------------------

    cerchi AAA e BBB
    se non EOF

    cerchi CCC e DDD
    se EOF

    cerchi CCC
    se EOF

    è CCC

    -----------------------------

    con questo sistema (cerchi sempre la metà) riduci il numero di query
    nel migliore dei casi a 1/2 del totale
    nel peggiore dei casi a 3/4 del totale

    -----------------------------

    in ogni caso può dipendere dal sistema complessivo

    se infatti ad ogni utente è associato un acronimo e ogni utente carica UNO E SOLO IL SUO
    il problema non si pone in quanto conoscendo l'acronimo del singolo utente puoi semplicemente fare una unica query con quell'acronimo

    se è EOF deve caricare e glielo segnali

    -----------------------------

    dimmi se ti è chiaro

    forse non sono le soluzioni migliori ma ora di primo acchito sono quelle che mi sono balzate in testa

    se mi viene in mente di meglio te lo scrivo
    san imente saluta

    * http://simonecingano.it *

  4. #4
    ah

    ma scusa

    veramente c'è un metodo moooolto più semplice

    carichi tutti i record

    se è count = 4 è tutto ok

    se è count < 4 allora fai un ciclo

    confronti i dati con un array dei valori a due dimensioni
    dimensione 1 = ACRONIMO
    dimensione 2 = FLAG (booleana)

    nel ciclo segni a VERO la flag se l'acronimo corrisponde

    alla fine guardi quale è rimasto a FALSO ed ecco il risultato

    unica query e un semplice ciclo

    alle volte basta pensare un secondo

    (sicuramente c'è qualcosa di ancora più performante)
    san imente saluta

    * http://simonecingano.it *

  5. #5
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    io non ho ben capito cosa devi fare, precisamente, ma pensavo che se sono solo quei 4 record al giorno e in quell'ordine, basta che conti i record.

    se il numero è 0 inserisci aaa se è 1 inserisci bbb e cosi via...


    ma forse non ho beninteso il problema... :master:
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  6. #6
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Grazie ho risolto!

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.