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.
| Author |
Topic |
|
jimoomba
Yak Posting Veteran
90 Posts |
Posted - 2011-12-05 : 13:15:50
|
| Hi All,Iam having clientlist table which contains clients username and the clientversions details.Here is the list of Clisntversions of my table:2.2.0.122.2.0.132.2.0.162.2.0.182.3.0.12.3.0.2From the list we can see the maximum version is 2.3.0.2, but when i ran my SP iam getting the maximum client version is 2.2.0.18. please find the below query and help me on the same :DECLARE @Temp as table(ver VARCHAR(20),Major INT,Minor INT,Build INT, Revision INT)INSERT INTO @TempSELECT DISTINCT (ClientVersion),NULL,NULL,NULL,NULL FROM ClientList WHERE LoginStatus<>0 DECLARE @RecCount INT,@MaxMajor INT,@MxCount INT,@MaxMinor INT,@MaxBuild INT,@MaxRevision INTUPDATE@TempSET Major=[dbo].[udf_Version] (Ver,1)UPDATE@TempSET Minor=[dbo].[udf_Version] (Ver,2)UPDATE@TempSET Build=[dbo].[udf_Version] (Ver,3)UPDATE@TempSET Revision=[dbo].[udf_Version] (Ver,4) SELECT @RecCount=COUNT(*) FROM @TempSELECT @MaxMajor=MAX(Major) FROM @TempDECLARE @FinalVal INTDECLARE @Ver TABLE(VAL INT)DECLARE @Ver1 TABLE(VAL VARCHAR(100))INSERT INTO @Ver SELECT DISTINCT MAJOR FROM @TempIF (SELECT COUNT(*) FROM @Ver)=1BEGINDELETE FROM @VerSELECT @MaxMinor=MAX(Minor) FROM @Temp INSERT INTO @Ver SELECT DISTINCT Minor FROM @Temp IF ((SELECT COUNT(*) FROM @Ver)=1) OR ((SELECT COUNT(*) FROM @Temp WHERE Minor=@MaxMinor)>1)BEGINDELETE FROM @VerSELECT @MaxBuild =MAX(Build) FROM @Temp INSERT INTO @Ver SELECT DISTINCT Build FROM @Temp IF ((SELECT COUNT(*) FROM @Ver)=1) OR ((SELECT COUNT(*) FROM @Temp WHERE Build=@MaxBuild)>1)BEGINDELETE FROM @VerINSERT INTO @Ver SELECT DISTINCT Revision FROM @TempSELECT @MaxRevision =MAX(Revision) FROM @Temp INSERT INTO @Ver1 SELECT ver from @Temp WHERE Revision =@MaxRevisionEND ELSEBEGININSERT INTO @Ver1 SELECT ver from @Temp WHERE Build =@MaxBuild ENDEND ELSEBEGININSERT INTO @Ver1 SELECT ver from @Temp WHERE Minor =@MaxMinor END ENDELSEBEGININSERT INTO @Ver1 SELECT ver from @Temp WHERE Major=@MaxMajor END SELECT TOP 1 @Version= VAL FROM @Ver1 ENDThanks,Ramrams |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
|
|
jimoomba
Yak Posting Veteran
90 Posts |
Posted - 2011-12-05 : 13:36:22
|
| Hi Visakh,I got the solution from you but i also wanted to know whats worng in my stored procedure as well..Thanks,Ramrams |
 |
|
|
Lamprey
Master Smack Fu Yak Hacker
4614 Posts |
Posted - 2011-12-05 : 14:07:37
|
| Have you tried to follow the logic you implemented? It's getting down to the Revision section (based on the data in the original post) so the MAX revision is 18. It's doing what you asked it to so. Now, if you want to know how to get the MAX, you might want to do a search on that as this has been solved several times on these forums alone. |
 |
|
|
|
|
|
|
|