Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    aiuto per query [mysql]

    Salve,
    ho un problema di questo tipo:
    ho una tabella dove registro le quote associative in questo modo:

    anno
    importo
    iduser

    Siccome un utente può aver pagato anni precedenti, non riesco a fare una query che mi tiri fuori solo quelli che non hanno pagato per un certo anno e solo quello!
    Come posso escludere un utente che ha pagato non solo il 2013 ma anche 2012 2011 ecc ecc?

    Grazie per l'aiuto!

  2. #2
    SELECT *
    FROM quote
    WHERE importo = 0

    ...se importo è un numerico.

    Ma non sono sicuro di aver capito la tua domanda

  3. #3
    ... where anno=2013 and (importo=0 or importo is null)

  4. #4
    grazie delle risposte, ma forse non mi sono spiegato bene:
    vediamo se ci riesco..

    ho una serie di soci che hanno pagato le quote precedenti al 2012 e magari anche il 2013 ma NON il 2012, quindi se io faccio "where quote.anno = '2012' and (quote.`importo`='0' or quote.importo is null)" non avrò il risultato che spero perché questi soci NON sono presenti nel 2012..

    è più chiaro adesso?
    la query secondo me, ma non riesco a svilupparla, andrebbe fatta lavorare sull'iduser, tipo se iduser è presente anche negli altri anni andrebbe escluso dal risultato..

    grazie ancora per l'aiuto!

  5. #5
    potresti usare una left join, ma cosa succede per gli iscritti nel 2013? hai una data di iscrizione per escluderli dalla ricerca?

  6. #6
    si, ma non è importante, si autoescludo non avendo versato quote.

  7. #7
    vai di left join, tra una tabella di anni (che dovrai costruire ex-novo) e la tabella dei versamenti

  8. #8
    non cavo un ragno dal buco, mi sono scervellato, ma evidentemente non carburo...

  9. #9

  10. #10
    non mi è chiaro lo svolgimento della join con la tabella anno (eventuale)
    riassumendo:
    SELECT DISTINCT
    a.cognome AS a_cognome,
    a.nome,
    a.codice,
    `quote`.anno
    FROM
    anagrafica a
    LEFT JOIN `quote` ON (`quote`.idsocio = a.codice)
    where quote.anno<>'2012'
    GROUP BY
    a.codice
    questa è la query standard che mi tira fuori tutti quelli che nn hanno il 2012, ma per evitare che mi tiri fuori gli anni precedenti? e solo quelli che non hanno nel campo anno il 2012?

    scusa, ma sono un po' fuso.

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.