Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 Unable to get unique data

Author  Topic 

anujpratap84
Starting Member

45 Posts

Posted - 2011-02-15 : 13:31:55
Hi All,
Here is my query to get data from two mapped table based on requestId

DECLARE @Games TABLE(ID INT,GameID INT,GameTypeId INT)
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY cgm_GameID ASC) AS ID,
objCGM.cgm_GameID,objG.gam_GameTypeID
FROM Test..Mappings AS objCGM
INNER JOIN Test..Games AS objG
ON objG.gam_GameID=objCGM.cgm_GameID
WHERE objCGM.cgm_RequestID IN (1,2)

Games table have a single row
gam_GameID Name gam_GameTypeID
1 ABC 1

AND
Mapping table have two row for two request 1 and 2.
cgm_GameID RequestId
1 1
1 2

my query returns
ID GameID GameType
1 1 1
2 1 1

But expected result is
ID GameID GameType
1 1 1


I want to get unique game id but, if i use ROW_NUMBER() OVER (ORDER BY cgm_GameID ASC) it gives dublicate record.
How i can get uniue data.
Thanks in advance.

Anuj Pratap Singh

MIK_2008
Master Smack Fu Yak Hacker

1054 Posts

Posted - 2011-02-15 : 13:36:52
in your desired output

GameID=GamesTable.gam_GameID
GameType=GamesTable.gam_GameTypeID

But ID column represents what?


Cheers
MIK
Go to Top of Page

chris_n_osborne
Starting Member

34 Posts

Posted - 2011-02-15 : 22:29:05
My apologies, but with such a small set of sample data, I am not at all sure that this is what you are looking for:

CREATE TABLE Games
(gam_GameID INTEGER
,Name NVARCHAR(3)
,gam_GameTypeID INTEGER
,CONSTRAINT pk_Games PRIMARY KEY (gam_GameID)
)

INSERT INTO Games
(gam_GameID
,Name
,gam_GameTypeID
)
SELECT 1, 'ABC', 1

CREATE TABLE Mappings
(cgm_GameID INTEGER
,cgm_RequestID INTEGER
,CONSTRAINT pk_Mappings PRIMARY KEY (cgm_GameID, cgm_RequestID)
,CONSTRAINT fk_Mappings_Games_cgm_GameID_gam_GameID
FOREIGN KEY (cgm_GameID)
REFERENCES Games (gam_GameID)
)
go

INSERT INTO Mappings
(cgm_GameID
,cgm_RequestID
)
SELECT 1, 1 UNION
SELECT 1, 2

SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY objG.gam_GameID ASC) as ID
,objG.gam_GameID
,(SELECT G02.gam_GameTypeID
FROM Games AS G02
WHERE G02.gam_GameID = objG.gam_GameID) as gam_GameTypeID
FROM (SELECT G01.gam_GameID
FROM Games AS G01
GROUP BY G01.gam_GameID) AS objG
WHERE EXISTS
(SELECT *
FROM Mappings AS objCGM
WHERE objG.gam_GameID = objCGM.cgm_GameID
AND objcgm.cgm_RequestID IN (1,2))

ID gam_GameID gam_GameTypeID
1 1 1
Go to Top of Page

anujpratap84
Starting Member

45 Posts

Posted - 2011-02-16 : 05:29:10
Thanks chris_n_osborne.
It's work like charm.

Anuj Pratap Singh
Go to Top of Page

chris_n_osborne
Starting Member

34 Posts

Posted - 2011-02-16 : 08:04:20
quote:
Originally posted by anujpratap84

Thanks chris_n_osborne.
It's work like charm.

Anuj Pratap Singh

Thank you.
Go to Top of Page
   

- Advertisement -