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

    [MySql]Select multipla con SUM

    Buon pomeriggio, dovrei estrapolare oltre ai dati di tutti i campi, anche il totale di un campo attraverso l'id_user di chi ha eseguito l'accesso al sito.
    codice:
    SELECT *,( SELECT SUM(l_login) FROM tb_user_new WHERE l_sponsor_ID = id_user ) AS tot FROM tb_user_new WHERE l_login = 'Pippo' AND l_passwd = 'Pippo'
    La tabella è unica da come vedete vi faccio l'esempio di cosa voglio:
    id_user | l_login | l_sponsor_ID | indirizzo
    5 | Pippo | 5 | piazza plebiscito
    1 | Paperino | 5 | via roma
    3 | Mario | 34 | viale trastevere
    4 | Antonio | 5 | via milano

    Vorrei che estrapolasse tutti i campi della tabella ed in più il totale del campo l_sponsor_ID (3).
    Nel campo l_sponsor_ID l'id_user(5) è presente 3 volte.

    Spero di essermi spiegato.
    Purtroppo come è strutturata su "as tot" mi restituisce "Null".
    Funziona soltanto se al posto del nome campo id_user, inserisco l'id_user numerico es:
    codice:
    SELECT *,( SELECT SUM(l_login) FROM tb_user_new WHERE l_sponsor_ID = 5 ) AS tot FROM tb_user_new WHERE l_login = 'Pippo' AND l_passwd = 'Pippo'
    Ma purtroppo io l'id_user a priori non posso saperlo, quindi come posso risolvere?
    Grazie mille.
    Buon weekend

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Cosa vorresti ottenere con SUM(login)? Quanto fa Pippo + Paperino? Io credo 0, o forse NULL, ma comunque è un'operazione che non ha senso...

  3. #3
    si effettivamente hai ragione, ho detto e fatto una stupidata, ma vorrei avere il totale degli
    l_sponsor_ID che fanno capo ad id_user.
    in questo caso dovrebbe restituirmi 3.
    Come dovrei fare?
    Grazie mille.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Al post di SUM(login) immagino che tu voglia COUNT(*). Dal problema che descrivi sembrerebbe che tu abbia semplicemente sbagliato a scrivere login e password.

  5. #5
    buon giorno.
    Ho fatto in questo modo.
    codice:
    //SELECT A
    
    SELECT *,( SELECT COUNT(*) FROM tb_user_new a, tb_user_new b WHERE a.l_sponsor_ID =b.id_user) AS tot FROM tb_user_new WHERE l_login ='Pippo' AND l_passwd ='Pippo'
    In questo modo conteggia tutti gli id_user che hanno corrispondenza all'interno di l_sponsor_ID.In questo modo ho 10 come totale, perché per il mio id_user me ne conta 7, poi ci sono altri id_user che hanno corrispondenza per un totale di 10.

    Ma io vorrei visualizzare soltanto la corrispondenza del mio id_user che ne conta 7.
    Capisco che per ottenere quello che voglio, dovrei passargli l'id_user singolo cosi:
    codice:
    //SELECT B
    
    SELECT *,( SELECT SUM(l_login) FROM tb_user_new WHERE l_sponsor_ID =
    5
    ) AS tot FROM tb_user_new WHERE l_login ='Pippo' AND l_passwd ='Pippo'
    Quindi misà, che se non so l'id_user a priori, non posso ottenere quello che voglio.Giusto?

    Grazie ancora.

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.