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