Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Optime, non mi sono spiegato.
    Io so bene come si fa una join tra tabelle....non devo fare una join per stabilire chi appartiene alla famiglia bianchi e chi ai rossi.
    Ripeto meglio la struttura della tabella:
    ho i campi parentela1, parentela2, parentela3, parentela4,parentela5,parentela6, parentela7 che possono (OPPURE NO) contenere un membro qualunque della famiglia.
    Il mio obiettivo è CONTARE per ogni record il numero dei campi parentela riempiti e devo farlo per tutti i record (che sono in numero non noto).
    Devo quindi fare un conteggio IN ORIZZONTALE (come Excel per intenderci) e così ottengo il numero di componenti di quella famiglia....lo faccio per tutti i record di modo di avere tanti numeri che corrispondono ai totali deio mebri per ciascun nucleo familiare....Quindi devo raggruppare ottenendo una cosa del tipo:
    5 famiglia da 2 membri
    2 famiglie da 6 membri
    1 famiglia da 2 membri
    etc etc
    La risposta che mi ha dato tu è un'altra cosa....
    Magari adesso sono riuscito ad essere più chiaro.

    Ciao

    Tiziano

    Originariamente inviato da optime
    santa crespella, hai sempre e solo lavorato con Excel dove i record sono solo orizzontali

    tabella nucleo
    ----------------
    NucleoID - NucleoDescrizione
    1 - famiglia rossi
    2 - famiglia verdi
    ...

    tabella componenti
    -------------------
    ComponenteID - ComponenteDescrizione
    1 - mario rossi
    2 - roberta bianchi
    3 - piero rossi
    4 - giuseppe verdi
    5 - maria bruni
    ...

    tabella composizione nucleo
    --------------------------
    NucleoID - ComponenteID
    1 - 1
    1 - 2
    1 - 3
    2 - 4
    2 - 5

    se vuoi puoi anche aggiungerti una bella tabella Ruoli


  2. #12
    tulip, se sai già come si fanno le cose, falle! io ti ho suggerito un metodo alternativo e *corretto* di fare le cose. ora sta a te decidere se vuoi seguire i consigli oppure no.

    comunque, ti sei chiesto cosa ottieni se scrivi

    select nucleoid, count(componenteID) from tabella_composizione_nucleo group by nucleoid

    ???

    poi fai come vuoi

  3. #13
    Continuo a pensare che non si possa fare come mi suggerisci.
    Scusami, fai uan cosa: se vedo l'immagine che ho linkato sopra, troverai i nomi dei campi corretti, scrivimi la query utilizzando i nomi correti dei campi (ovviamente aggiungendo le colonne ID che mancano) e riportala.
    Il tuo ragionamento SECONDO ME non può funzionare perchè non posso contare in orizzontale ameno di non utilizzare una tabella pivot...in quel caso potrei sommare il numero dei nuclei....ma come dici te io RITENGO non vada.....potrei sbagliarmi ma non credo...

  4. #14
    scusa, ma "scrivimi la query utilizzando i nomi correti dei campi (ovviamente aggiungendo le colonne ID che mancano) e riportala" vuol dire che IO faccio il TUO lavoro

    la tua richiesta è semplice: contare i componenti di un nucleo; è come contare gli articoli di una distinta base; i messaggi di un utente; le scadenze di una pratica; ecc ecc ecc

    ti ho indicato come fare, prova. altrimenti, se vuoi tenere la tua struttura orizzontale (che ha l'evidente difetto di essere esagerata per nuclei piccoli, ma potenzialmente insufficiente per nuclei molto grandi), devi contarti i componenti *a mano* in PHP


  5. #15
    Optime, se chiedo aiuto qui è perchè evidentemente mi serve una mano...non pretendo tu faccia il mio lavoro, sto chiedendo UNA query (che è più complessa di quello che appare).
    Continui ad indicarmi una strada che NON VA BENE.
    Tu scrivi:
    la tua richiesta è semplice: contare i componenti di un nucleo; è come contare gli articoli di una distinta base; i messaggi di un utente; le scadenze di una pratica; ecc ecc ecc

    Questo dimostra che benchè io abbia messo un'immagine MOLTO esplicativa, abbia descritto due volte il problema...tu non hai ancora capito!
    Se sommi i messaggi di un utente, come dici, è cosa banale perchè ogni messaggio occuperà il suo record nella tabella messaggi. Quindi con un banale COUNT WHERE id=idutente ti tiri fuori il conteggio dei messaggi dell'utente.
    Adesso immagina che ogni utente abbia 3 campi di testo che possono o meno essere riempiti e questi tre campi di testo risiedano NELLO STESSO RECORD.
    Io ti chiedo: mi conti, per ogni record, i campi che l'utente ha riempito?
    Devi sommare, ALL'INTERNO DEL RECORD, quali dei campi sono pieni (non mi importa cosa contengano) e devi farlo per ogni utente.
    Poi io ti chiedo: raggruppami questo conteggio che hai fatto per la cardinalità dei campi riempiti: vuol dire che mi presenterai un risultato che mi dirà: hai 3 occorrenze dove sono riempiti 2 campi, 1 occorrenza dove sono riempiti tutti e tre i campi e 3 occorrenze dove è riempito un solo campo.

    Capisci che quello che mi suggerisci tu non ci azzecca assolutamente nulla?

    TIZIANO


    Ti ringrazio comunque per il tempo

  6. #16
    riepiloghiamo. hai questa tabella orizzontale, e abbiamo appurato che finché resta orizzontale, il numero dei componenti ogni nucleo te lo devi contare da PHP (avessi usato m$sql si poteva con una SP, ma questo è un altro discorso)

    poi gioia immensa! ti han dato l'ok per cambiare la struttura. io ti ho quindi detto come strutturare le nuove tabelle. in quel modo il conteggio risulta facile.

    rilassati, rileggiti *tutto* il thread, e poi dimmi cosa non ti è chiaro.



    ah, potrei anche non aver capito niente, ma sai, durante il week-end il neurone intelligente va via e mi rimane solo quello scemo

  7. #17
    Preciso ulteriormente il mio spazio di manovra: posso aggiungere campi alla tabella e posso crearne di nuove ma non posso toccare i 7 campi parentela.
    Quindi penso che siamo punto e a capo.

    Tiziano

    PS
    Fortunato te che almeno un neurone buono te lo ritrovi....

  8. #18
    Originariamente inviato da Tulipan0nero
    Preciso ulteriormente il mio spazio di manovra: posso aggiungere campi alla tabella e posso crearne di nuove ma non posso toccare i 7 campi parentela.
    non potevi dirlo prima invece di trascinare avanti il ragionamento, tutto basato su questa tua affermazione???

    Originariamente inviato da Tulipan0nero
    Optime,
    ho avuto il via libera per la modifica delle tabella così da poter operare lato server!
    vabbe' per me 3d chiuso - te la devi vedere in PHP

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