Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896

    [SQL] recupero utenti non rinnovati

    Ciao a tutti!

    io ho una tabella abbonamenti in cui vi sono degli abbonamenti scaduti. Questa sarà una statistica quindi verrà spalmato nell'intero anno quindi ho messo:

    SELECT ADAtda , ATLidr , TDAnom , CONCAT( ATLcog , ' ' , ATLnom ) AS ATLcen , ADAfin FROM ( ( ADA LEFT JOIN TDA ON ADAtda = TDAidr ) LEFT JOIN ADP ON ADPidr = TDAadp ) LEFT JOIN ATL ON ATLidr = ADAatl
    WHERE
    ADAdca IS NULL AND ADAatt = 1
    AND TDAdca IS NULL AND TDAatt = 1
    AND ADPdca IS NULL AND ADPatt = 1
    AND DATE_FORMAT( ADAfin , '%Y%m' ) BETWEEN DATE_FORMAT( '2008-02-01' - INTERVAL 11 MONTH , '%Y%m' )

    e fin qui, mi sembra tutto ok. Ora in base a questa tabella vorrei sapere chi non ha rinnovato... avevo pensato di sottrarre al risultato ottenuto sopra la tabella degli abbonamenti attivi... ma non riesco a definirla...


    e dopo mille tentativi niente... qualche suggerimento su come poterla fare?

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    uppino...

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    non avendo la palla di vetro è difficile definire i tuoi nomi di campo...
    dovrebbe esserci un campo che sta a 0 se non hanno rinnovato e lo porti a 1 se rinnovano...

    però potrei aver scritto una faggianata..

  4. #4
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    devi scusarmi ma molto probabilmente mi sono spigatato male... provo a rispiegarmi:

    sto eseguendo una statistica "quanti utenti NON hanno rinnovato l'abbonamento". Logicamente (sempre se si può fare) devo estrarre questo risultato dalla tabella abbonamenti (in cui non ho nessun campo in cui viene dichiarato l'abbonamento rinnovato)

    se non si capisce ditelo! grazie...

  5. #5
    un campo rinnovato/non rinonvato non avrebbe più senso di tanto, invece un campo con la durata dell'abbonamento o la scadenza dell'abbonamento con un campo in cui inserisci l'ultimo rinnovo eseguito risolve il problema alla base .... li hai questi?

  6. #6
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    la tabella abbonamenti ha (i campi nn si chiamano proprio così però lo faccio per farmi capire):

    id_utente
    data_di_inizio
    data_di_fine
    tipo_di_abbonamento

    quindi pensavo di risolvere con una cosa del genere:

    1) mi estraggo gli id degli abbonamenti scaduti
    2) agli abbonamenti scaduti sottraggo quelli attualmenti attivi che non fanno parte della query descritta nel punto precedente

    ma mi sto strippando da tre giorni...

    qualche idea di poter risolvere. grazie per la pazienza...

  7. #7
    una query tipo

    SELECT * FROM abbonamenti WHERE data_di_fine < NOW()

    ti restituisce gli abbonamenti scaduti

  8. #8
    ma se semplicemente vorresti la conta degli abbonamenti scaduti:

    codice:
    select count(*) as scaduti
    FROM abbonamenti 
    WHERE data_di_fine < NOW()
    rende una riga con il numero degli abbonamenti scaduti

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Originariamente inviato da piero.mac
    ma se semplicemente vorresti la conta degli abbonamenti scaduti:

    codice:
    select count(*) as scaduti
    FROM abbonamenti 
    WHERE data_di_fine < NOW()
    rende una riga con il numero degli abbonamenti scaduti
    [OT]
    rrrr:

    ti avevo battuto sul tempo rrrr:

    però non avevo fatto caso al fatto che a lui interessasse il fatto di avere restituiti il numero di abbonamenti scaduti
    [/OT]

    Consiglio personale:
    se a te serve effettuare la conta ma anche altro tipo di statistiche sui valori restituiti, dato che non è detto che tu possa fare direttamente tramite query (dipende dalla situazione specifica ^^) ti conviene lanciare una sola query e poi elaborare quey dati via php

    Per esempio la conta la fai incrementando un valore dentro il ciclo while che acquisisce i valori ... senza usare il mysql num rows perché fa la stessa operazione ... ma da sola! ovvero mentre tu nel ciclo while puoi fare altre operazioni che ti servono per la statistica il mysql_num_rows effettua solamente il conteggio di tutti i record ... contandoli

  10. #10
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    no, a me non serve il numero degli abbonamenti scaduti ma il numero di utenti che NON ha rinnovato l'abbonamento scaduto...

    sono arrivato alla conclusione che devo elaborare i dati

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.