creare tabella con dati da database

ludrico

Nuovo Utente
12 Gen 2012
7
0
0
allora il mio problema è trasferire i dati contenuti in una tabella nel mio database in una tabella del mio sito



la mia tabella nel database è :

utente| debitore | contante in debito | contante
marco | giulia | 700€ | 1000€
giulia | luigi | 600€ | 1000€
Francesca | giulia | 50€ | 1000€
luigi | X | X | 1000€




la tabella che vorrei visualizzare nella mia pagina è invece :

nome | contante in debito | contante|
marco | 0€ | 1000€
giulia | 750€ | 1000€
francesca | 0€ 1000€
luigi | 600€ | 1000€


avevo pensato a qualcosa del genere:

SELECT debitore, sum(contante in debito) FROM utenti GROUP BY debitore

ma questo codice riporta dal database solo le righe dove il campo "debitore" non è vuoto!

esiste un qualche altro tipo di comando che tenga in considerazione tutte le righe della mia tabella utenti ?

Magari facendo uscire "0" nella colonna della mia tabella "contante in debito" quando l'utente non è debitore di nessuno?


attendo vostre notizie e grazie per la vostra disponibilità
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ciao prova questa
Codice:
SELECT * FROM (
SELECT debitore as nome, sum(contanteindebito) as debito,contante
FROM `utenti` WHERE contanteindebito > 0 GROUP BY debitore

UNION ALL

SELECT utente as nome, 0 as debito,contante
FROM utenti GROUP BY utente
) as tbl GROUP BY tbl.nome
 

ludrico

Nuovo Utente
12 Gen 2012
7
0
0
ciao prova questa
Codice:
SELECT * FROM (
SELECT debitore as nome, sum(contanteindebito) as debito,contante
FROM `utenti` WHERE contanteindebito > 0 GROUP BY debitore

UNION ALL

SELECT utente as nome, 0 as debito,contante
FROM utenti GROUP BY utente
) as tbl GROUP BY tbl.nome

il codice funziona ma in parte... ti faccio un esempio della tabella che viene visualizzata così facciamo prima


questa è la mia tabella "utenti" del mio database:

utente________________ debitore______________debito_________ contante
marco_________________ giulia ______________ 700€___________________ 1500€
giulia _________________ luigi _________________ 600€ ___________________ 1200€
Francesca ______________ giulia _______________ 50€ ____________________ 1300€
luigi ________________ campo vuoto ___________campo vuoto _______________ 1400€

questa è la tabella che vorrei visualizzare :

nome utente________________contante__________ contante in debito
marco _____________________ 1500€ _________________ 0€
luigi ______________________ 1400€ _________________ 600€
francesca___________________1300€_________________ 0€
giulia __________ _______ ____1200€_________________ 750€

questa è la tabella che visualizzo utilizzando il codice che mi hai consigliato

nome utente________________contante__________ contante in debito
marco _____________________ 1500€ _________________ 0€
luigi ______________________ 1200€ _________________ 600€
francesca___________________1300€_________________ 0€
giulia __________ _______ ____1500€_________________ 750€

come puoi vedere giulia ha un debito con marco e con francesca, nella colonna "contante" invece di essere visualizzato il valore 1200€ (dato che si trova nella tabella utenti del database alla riga di giulia) viene visualizzato il "contante" del creditore piu ricco, in questo caso marco (in quanto 1500€>1300€).
La stessa cosa avviene con luigi invece di riportare dal database il valore corretto 1400€ (dato che si trova nella tabella utenti del database alla riga di luigi)riporta il contante del suo creditore piu ricco, in questo caso il contante di giulia 1200€.

come posso correggere il codice da te postatomi?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Si, hai ragione, non ci avevo fatto caso

prova cosi

Codice:
SELECT * FROM (
SELECT debitore as nome, sum(contanteindebito) as debito,contante
FROM `utenti` WHERE contanteindebito > 0 GROUP BY debitore
UNION ALL

SELECT utente as nome, 0 as debito,contante
FROM utenti GROUP BY utente ORDER BY debito
) as tbl GROUP BY tbl.nome

in effetti è una query fuori dal mio ordinario, non ne sono ancora convinto

ho aggiunto un ordinamento nella tabella generata dalla union
testala con tutti gli elementi che hai a disposizione
 

ludrico

Nuovo Utente
12 Gen 2012
7
0
0
Codice:
SELECT * FROM (
SELECT debitore as nome, sum(contanteindebito) as debito,contante
FROM `utenti` WHERE contanteindebito > 0 GROUP BY debitore
UNION ALL

SELECT utente as nome, 0 as debito,contante
FROM utenti GROUP BY utente order by debito
) as tbl GROUP BY tbl.nome ORDER BY contante desc

mi ero permesso di aggiungere anche order by contante desc per ottenere che i risultati fossero visualizzati secondo il credito decrescente ma il codice continua a non funzionare, quell'anomalia che ti avevo descritto prima non si presenta più, ma ora la colonna dei "contante in debito" riporta zero in tutte le celle
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
E' stato un parto

prova questa

Codice:
SELECT U.utente,U.contante, IFNULL(UD.debito,0) as debito
FROM utenti U 
LEFT JOIN (
SELECT utente,debitore, SUM(contanteindebito) as debito FROM utenti GROUP BY debitore
) UD ON U.utente = UD.debitore
 

ludrico

Nuovo Utente
12 Gen 2012
7
0
0
ora funziona alla grande :D grazie

un ultima cosa puoi per caso indicarmi dove posso trovare qualche guida, magari con qualche esempio, che mi "istruisca" sul funzionamento di questi codici ?

grazie ancora e a presto :jolly:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ci sono tante guide in rete, anche su questo sito

Cerca Guida MySQL
 
Discussioni simili
Autore Titolo Forum Risposte Data
V Creare tabella mysql con php non funziona PHP 1
M Creare tabella da pagina php popolata con valori passati con POST PHP 5
P [PHP] Creare un elenco completo con tabella PHP 3
A Creare una fattura con dati di intestazione estratti da tabella MySQL 0
A Access, creare nuova tabella in DB esterno con VBA Visual Basic 0
M Access-Query per creare una tabella con la data nel nome tabella MS Access 0
Devil-94 Creare elemento nella tabella con document.createElement("td") Javascript 1
F Creare una tabella dinamica con la sintassi del W3C Javascript 1
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
F [PHP] creare tabella e tasto cerca PHP 3
M [MySQL] CREARE UN LINK SU UN DETERMINATO CAMPO DI UNA TABELLA RISULTATO DI UNA QUERY SQL MySQL 3
M Creare tabella da pulsante php PHP 6
S creare una tabella da codice PHP 4
M creare una tabella dove inserire i dati del database Database 1
gaia creare una tabella dall'unione di due tabelle MySQL 3
A Creare nuova casella di una tabella Javascript 4
M Creare tabella dinamica PHP 2
ypsilon86 Da un FORM creare una Tabella dinamica PHP 7
C Javascript completo di html per creare una tabella dove compare il saluto in base all'ora. Javascript 2
D Come creare questa tabella?? HTML e CSS 0
V Creare una tabella in un database PHP 8
V aiuto!!!Non riesco a creare questa tabella Classic ASP 1
M creare una tabella per la registrazione PHP 18
G Vorrei creare una tabella dal menù dati di excel Windows e Software 1
W [SQL Server] Creare un trigger per mappare le modifiche su una tabella Database 0
giorgione_tg MySql semplice problema nel creare una tabella... Database 2
I creare tabella in database Database 3
I creare tabella in database PHP 1
E Creare un testo trasparente dietro un div HTML e CSS 5
M Creare traccia di download file sul server HTML e CSS 2
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
L Creare ancore interne alla pagina PHP 1
I Creare un banner temporaneo JavaScript Javascript 0
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
U PHP creare un file excel dopo ricerca nel DB PHP 0
A Creare un cronometro PHP 5
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
F Creare elementi html con javascript Javascript 3
Shyson Modificare codice e creare link PHP 0
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Creare una forma geometrica Photoshop 1
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
S Libreria PHP per creare file dwg o dxf PHP 0
R Come creare sistema Add to homescreen PHP 3
L Creare un countdown con giorno specifico della settimana PHP 3
W Creare link di una dato Classic ASP 0
W creare file .jar Java 2
M Creare con il Vb 2010 Il Classico Notes di Windows Vista Visual Basic 1

Discussioni simili