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

    Quanti sono i record con la stessa cifra???

    ragazzi mi servirebbe una stringa SQL, se esiste, che mi dica quanti sono gli utenti che hanno in un campo "numero" lo stesso numero es: numero = 5 !!!!
    qual è?

    Mi spiego meglio:
    io ho un database
    ID,Nome,Cognome,Numero

    ora in numero ci va un id di un altro utente, tipo i referal;
    mi interessa una funzione che mi dica:
    x tutti gli utenti quanti sono gli utenti che hanno nel campo numero il proprio ID....

    come devo fare???
    aiuto
    la vita è un fulmine ma prenderlo nel culo è un lampo.

  2. #2
    Se usi SQL Server 2000 puoi creare una funzione che esgua una count passandogli un ID ma lo trovo veramente oneroso.

  3. #3
    Ieri ho dimenticato questa soluzione (è analoga a quella che ti ho dato ieri ma funziona anche con SQL Server 7):
    fai una vista raggruppata per "Refer" e con una COUNT dei records in modo da avere la coppia di campi e poi fai una join con la tabella principale tra ID e campo raggruppato.

    In pratica:

    SELECT Ref, COUNT(Ref) FROM Tabella GROUP BY Ref

    Questa vista ti dice per ogni ID quanti sono quelli che hanno qull'ID nel campo Ref.
    Fai quindi una JOIN tra questa vista e "Tabella" tra il campo Ref della vista ottenuta prima e l'ID della tabella.

    Il meccanismo è analogo a quello della funzione per SQL 2000; solo qualche considerazione sulle prestazioni: la funzione la invochi solo per i records estratti mentre il metodo con la vista obbliga SQLServer a fare prima la query su tutta la tabella. Se però devi estrarre sempre tutti i records, o la maggior parte, il metodo della vista è più conveniente visto che SQL si può preparare un piano di esecuzione migliore.

    Ciao.

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.