Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [per geni] query SQL

  1. #1

    [per geni] query SQL

    Salve ragazzi,

    ho un db composto in questo modo
    codice:
    ---------------------------------
    | idagente | tipopolizza | importo | 
    ---------------------------------
    | PC111    | nuova       | 345      |
    | PC265    | nuova       | 234      |
    | PC111    | rinnovo     | 556      |
    | PC111    | nuova       | 434      |
    | PC265    | rinnovo     |  422     |
    ---------------------------------
    ora dovrei fare una query per calcolare in numero delle occorrenze e la somma delle stesse:

    sql="Select idagente,Count(*),SUM(importo) as tot from tabella group by idagente"

    la query appena postata mi porta il seguente risultato:

    codice:
    ------------------------------------
    |agente  | numeropolizze  | totale   |
    ------------------------------------
    | PC111  |    3                |  1335   |
    | PC265  |    2                |  656    |
    -----------------------------------
    in realtà io vorrei portare a video i seguenti dati

    codice:
    -----------------------------------------------------------------
    |agente  | polizzenuove  | totalenuove   | rinnovi  | Totalerinnovi |
    -----------------------------------------------------------------
    | PC111  |    2                |  779           |  1        | 556              |
    | PC265  |    1                |  234           |  1        | 422              |
    ----------------------------------------------------------------
    C'è un modo per farlo con un unica SQL?
    Bevo solo Java <--- [Mamma mia che nerd]

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select idagente,
    sum(if(tipopolizza='nuova',1,0)) as polizzenuove,
    sum(if(tipopolizza='nuova',importo,0)) as totalenuove,
    sum(if(tipopolizza='rinnovo',1,0)) as polizzerinnovi,
    sum(if(tipopolizza='rinnovo',importo,0)) as totalerinnovo
    from tabella
    group by idagente

  3. #3
    grazie mille domani la provo

    nel frattempo mi spieghi cosa sono gli attributi 1 e 0 che hai messo nella clausola SUM?
    Bevo solo Java <--- [Mamma mia che nerd]

  4. #4
    Originariamente inviato da Caffeinomane
    grazie mille domani la provo

    nel frattempo mi spieghi cosa sono gli attributi 1 e 0 che hai messo nella clausola SUM?
    ehmmm! veramente sono le opzioni dell'if.

    if condizione e' true scrivi 1, altrimenti scrivi 0

    sum si limita a sommare 1 oppure 0 a seconda di cosa gli rende la if

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

  5. #5
    non conoscevo la funzione if nelle dichiarazioni sql

    ora è tutto chiaro

    grazie mille
    Bevo solo Java <--- [Mamma mia che nerd]

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.