Suggerimento query
pierpaolo1982
pierpaolo1982 non è online. Ultima attività: 30/04/2009 2.37.49pierpaolo1982
il 2 dicembre 2008 alle 23.27
www.digeltech.com | 61 messaggi dal 10 settembre 2007
Salve,
scusate se la domanda è un po' banale cmq...

Ho una tabella con questi campi:
IDRisposta - RispText - IDUtente - IDmex;
1 - 'ciao' - pippo - 12;
2 - 'buona sera' - pippo - 12;
3 - 'arrivo!' - pippo - 54;


in questa tabella gli utenti inseriscono delle risposte a dei messaggi(IDMex),
Mi servirebbe sapere l'utente 'Pippo' a quali messaggi ha risposto,
quindi in questo caso il risulato dovrebbe essere: 12 e 54; (non 12,12,54)
grazieee

(DB SQL Server 2005 express)
Modificato da pierpaolo1982 il 02 dicembre 2008 23.28 -

W la Foca e che Dio la benedoca
Microsoft Most Valuable Professional
RE: Suggerimento query
Andrea Montanari
Andrea Montanari non è online. Ultima attività: 05/07/2009 17.54.03Andrea Montanari Top Poster
il 3 dicembre 2008 alle 01.29
Contributi | www.asql.biz | 1.135 messaggi dal 27 luglio 2005
salve,
pierpaolo1982 ha scritto:
Salve,
scusate se la domanda è un po' banale cmq...

Ho una tabella con questi campi:
IDRisposta - RispText - IDUtente - IDmex;
1 - 'ciao' - pippo - 12;
2 - 'buona sera' - pippo - 12;
3 - 'arrivo!' - pippo - 54;


in questa tabella gli utenti inseriscono delle risposte a dei messaggi(IDMex),
Mi servirebbe sapere l'utente 'Pippo' a quali messaggi ha risposto,
quindi in questo caso il risulato dovrebbe essere: 12 e 54; (non 12,12,54)
grazieee

(DB SQL Server 2005 express)
Modificato da pierpaolo1982 il 02 dicembre 2008 23.28 -


puoi ottenere il risultato desiderato utilizzando il raggruppamento restituito dalla clausola DISTINCT che raggruppa appunto il risultato nella proiezione..
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.T (
IDRisposta int PRIMARY KEY,
RispText varchar(10),
IDUtente varchar(10), -- a dire il vero questo non e' un ID
IDmex int
);
INSERT INTO dbo.T VALUES (1, 'ciao', 'pippo', 12);
INSERT INTO dbo.T VALUES (2, 'buona sera', 'pippo', 12);
INSERT INTO dbo.T VALUES (3, 'arrivo!', 'pippo', 54);
GO
SELECT DISTINCT IDUtente, IDmex
FROM dbo.T
ORDER BY t.IDmex
GO
SELECT DISTINCT IDmex
FROM dbo.T
WHERE IDUtente = 'pippo';
GO
DROP TABLE dbo.t;
--<------------
IDUtente IDmex
---------- -----------
pippo 12
pippo 54

IDmex
-----------
12
54

nel primo caso, il raggruppamento viene eseguito sugli attributi IDUtente + IDMex, mentre nel secondo caso, dove il filtro di where ovviamente esclude tutti gli utenti non interessati, il raggruppamente e' eseguito per il solo attributo di IDMex..
saluti

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9