Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [PL\SQL] QUERY su stessa tabella e group by

    Salve a tutti vi espongo il mio roblema dovrei creare una query che mi mostri alcuni attributi sempre sulla stessa tabella e usndo la funzione count.
    Per maggiore chiarezza ho inserito oltre alla query fatta da me ma che pero non esegue quello che vorrei il popolamento della tabella in questione


    ecco cosa fa :

    Codice PHP:
    COUNT(CC_FC_MATRICOLA          CC_F
    ----------- -------------------- -----------
              
    1 3004                 A000000005
              1 3005                 A000000006
              1 3007                 A000000008
              1 3002                 A000000003
              1 3012                 A000000013
              1 3014                 A000000015
              1 3016                 A000000014
              1 3000                 A000000001
              1 3013                 A000000014
              1 3008                 A000000009
              1 3010                 A000000011

    COUNT
    (CC_FC_MATRICOLA          CC_F
    ----------- -------------------- -----------
              
    1 3006                 A000000007
              1 3015                 A000000015
              1 3003                 A000000004
              1 3009                 A000000010
              1 3011                 A000000012
              1 3001                 A000000002
              1 3017                 A000000013 

    invece ecco cosa vorrei che uscisse

    Codice PHP:
    COUNT(CC_FCC_F     c_matricola
    ----------- ----------
              
    1 A000000001  3000
              1 A000000011  3010
              1 A000000004  3003
              1 A000000008  3007
              2 A000000015  3014  
    -- il Cc_F in questione e presente 2 volte con 2 matricole diverse
              2 A000000015  3015  
    -- il Cc_F in questione e presente 2 volte con 2 matricole diverse
              1 A000000006
              1 A000000007
              1 A000000005
              2 A000000014  3016  
    -- il Cc_F in questione e presente 2 volte con 2 matricole diverse
              2 A000000014  3013 
    -- il Cc_F in questione e presente 2 volte con 2 matricole diverse  
              1 A000000009
              1 A000000010

    COUNT
    (CC_FCC_F
    ----------- ----------
              
    1 A000000002
              1 A000000003
              1 A000000012
              2 A000000013 


    IN PRATICA MI DEVE ELENCARE QUANTE VOLTE IL CC_F E PRESENTE, IL CC_F IN QUESTIONE E LE MATRICLE ASSEGATE , RICORDO CHE QUESTI DATI SI TROVANO SULLA STESSA TABELLA (CLIENTE)


    Codice PHP:
    SELECT COUNT(CC_F)c_matricola,CC_F FROM CLIENTE GROUP BY CC_F,c_matricola



    Codice PHP:
    --CLIENTE
    INSERT INTO CLIENTE
    (C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3000','OPERAIO',21,'A000000001','116');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3001','OPERAIO',31,'A000000002','117');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3002','DIPENDENTE',33,'A000000003','118');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3003','DIPENDENTE',43,'A000000004','119');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3004','DIPENDENTE',33,'A000000005','120');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3005','L PROFESSIONISTA',53,'A000000006','121');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3006','L PROFESSIONISTA',23,'A000000007','122');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3007','PENSIONATO',73,'A000000008','123');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3008','PENSIONATO',83,'A000000009','124');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3009','COMMERCIANTE',31,'A000000010','125');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3010','COMMERCIANTE',31,'A000000011','126');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3011','COMMERCIANTE',31,'A000000012','127');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3012','DISOCCUPATO',31,'A000000013','128');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3013','DISOCCUPATO',31,'A000000014','129');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3014','IMPIEGATO',51,'A000000015','130');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3015','IMPIEGATO',51,'A000000015','130');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3016','DISOCCUPATO',31,'A000000014','129');
    INSERT INTO CLIENTE(C_MATRICOLA,LAVORO,ETA,CC_F,ID_RICHVALUES
    ('3017','DISOCCUPATO',31,'A000000013','128'); 
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305

    Moderazione

    Come espressamente indicato nel regolamento, sono da evitarsi epiteti come "Urgente" nelle discussioni perchè in un forum non hanno alcun senso: tutte le discussioni anno la medesima urgenza.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    CHIEDO VENIA =) HO EDITATO IL TITOLO =)
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  4. #4
    non ho provato, ma piu' o meno dovrebbe essere cosi':

    codice:
    select b.count_cc_f, b.CC_F, a.C_MATRICOLA
    from CLIENTE as a
    left join (select count(CC_F) count_cc_f, CC_F from CLIENTE group by CC_F) as b
    on a.CC_F = b.CC_F
    insomma fai una left join tra la tabella CLIENTE e la group by CC_F della stessa

  5. #5
    il problema e che mi da errore ala definizione AS dandomi l'errore comando SQl terminato erroneamente ...

    ma sicuro che posso usare As in una query ???



    Codice PHP:
    select b.count_cc_fb.CC_Fa.C_MATRICOLA
    from CLIENTE 
    as a
    left join 
    (select count(CC_Fcount_cc_fCC_F from CLIENTE group by CC_F) as b
    on a
    .CC_F b.CC_F 
    Codice PHP:
    ERRORE alla riga 1:
    ORA-00933comando SQL terminato erroneamente 
    in pratica se uso questa sintassi

    Codice PHP:
    (select count(CC_Fcount_cc_fCC_F from CLIENTE group by CC_F) as b;

    o

    select count
    (CC_Fcount_cc_fCC_F from CLIENTE group by CC_F as b
    mi da errore a via dell As b
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Non usare AS, accosta la ridenominazione della tabella alla tabella stessa

    codice:
    from CLIENTE a
    every day above ground is a good one

  7. #7
    the grazie 1000 =)

    mi siete stati di grandissimo aiutooooooooooooo =)

    ho perso 2gg su questa query (anche xche no sapevo che si potessero rinominari)
    un grandissimo grazzie ancora =)
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

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 © 2024 vBulletin Solutions, Inc. All rights reserved.