Hi,
How do I ensure that DISTINCT values of r.GPositionID are returned from the below?
Code Snippet
SELECT CommentImage AS ViewComment,r.GPositionID,GCustodian,GCustodianAccount,GAssetType
FROM @.GResults r
LEFT OUTER JOIN
ReconComments cm
ON cm.GPositionID = r.GPositionID
WHERE r.GPositionID NOT IN (SELECT g.GPositionID FROM ReconGCrossReference g)
ORDER BY GCustodian, GCustodianAccount, GAssetType;
Thanks.You can apply the distinct key word after the select clause – if all the column set values are duplicate,
Code Snippet
SELECT Distinct
CommentImage AS ViewComment
, r.GPositionID
, GCustodian
, GCustodianAccount
, GAssetType
FROM
@.GResults r
LEFT OUTER JOIN ReconComments cm
ON cm.GPositionID = r.GPositionID
WHERE
r.GPositionID NOT IN (SELECT g.GPositionID FROM ReconGCrossReference g)
ORDER BY
GCustodian
, GCustodianAccount
, GAssetType;
If column set values (CommentImage, GCustodian, GCustodianAccount, GAssetType) are not unique you can apply group functions – it may cauase some data lose.
Code Snippet
SELECT Distinct
Max(CommentImage) AS ViewComment
, r.GPositionID
, Max(GCustodian)
, Max(GCustodianAccount)
, Max(GAssetType)
FROM
@.GResults r
LEFT OUTER JOIN ReconComments cm
ON cm.GPositionID = r.GPositionID
WHERE
r.GPositionID NOT IN (SELECT g.GPositionID FROM ReconGCrossReference g)
Group BY
r.GPositionID
ORDER BY
GCustodian
, GCustodianAccount
, GAssetType;
|||
CommentImage has dataType 'Image'
Using DISTINCT with it gives the below error...
The text, ntext, or image data type cannot be selected as DISTINCT.
|||The following query might help you,
Select
(select Top 1 CommentImage from ReconComments s where s.GPositionID=data.GPositionID),
, GPositionID
, GCustodian
, GCustodianAccount
, GAssetType
From
(
SELECT Distinct
, r.GPositionID
, GCustodian
, GCustodianAccount
, GAssetType
FROM
@.GResults r
LEFT OUTER JOIN ReconComments cm
ON cm.GPositionID = r.GPositionID
WHERE
r.GPositionID NOT IN (SELECT g.GPositionID FROM ReconGCrossReference g)
) as data
ORDER BY
GCustodian
, GCustodianAccount
, GAssetType;
|||Get this error...
The text, ntext, and image data types are invalid in this subquery or aggregate expression
|||Yes SQL Server 2000 cause this error..let me check the solution for this.|||r.GPositionID,GCustodian,GCustodianAcc ount,GAssetType are all from the one table.So I want the distinct values of this table returned.
Using SLQ Server 2005
thanks.
|||If you really use SQL Server 2005 (check using => print @.@.version) database then the following query work fine,
MS Recommandation: Change your Image datatype to varbinary(max)
Code Snippet
SELECT Distinct
Cast(CommentImage as varbinary(max)) AS ViewComment
, r.GPositionID
, GCustodian
, GCustodianAccount
, GAssetType
FROM
@.GResults r
LEFT OUTER JOIN ReconComments cm
ON cm.GPositionID = r.GPositionID
WHERE
r.GPositionID NOT IN (SELECT g.GPositionID FROM ReconGCrossReference g)
ORDER BY
GCustodian
, GCustodianAccount
, GAssetType;
|||
When I click the 'Help' > 'About' link it tells me its Microsoft SQL Server 2005.
Using
print @.@.version
tells me this...
Microsoft SQL Server 2000 - 8.00.878 (Intel X86)
|||That means you connected SQL Server 2000 server from the Management Studio (2005 Client tool).
Let me clarify where the images are stored - is it in different table (ReconComments) .
Is there any possibilty to have duplicate images for one GPositionID.
|||Sorry - it is possible for one GPositionID to have duplicate images.|||
GPositionID and GCustodian are in the one table.
CommentImage is from a related table.
There is a M:M relation.
Here's the tables structure:
RComments Tbl:
RCommentsID int PK,
CommentImage image,
GPositionID int FK
@.GResults Tbl:
GPositionID int PK,
GCustodian varchar(250),
GCustodianAccount varchar(250),
GAssetType varchar(250)
No comments:
Post a Comment