Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Custom agregation in Sql server 6
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  3 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
bradbury9  
View profile  
 More options Feb 1, 6:21 am
Newsgroups: comp.databases.ms-sqlserver
From: bradbury9 <ray.bradbu...@gmail.com>
Date: Wed, 1 Feb 2012 03:21:44 -0800 (PST)
Local: Wed, Feb 1 2012 6:21 am
Subject: Custom agregation in Sql server 6
I know it is legacy database, but i have been looking how can i get

Input data

Col1, col2
1,      'nebraska'
1,      'boston'
2,      'new york'
3,      'pekin'

results desired:
Col1 col2_concatenated
1      'nebraska,boston'
2      'new york'
3      'pekin'

The problem i find is using sql server 6 (sql server 2000 with
backward 6.0 compatibility actually).
I cant do custom agregate functions (those are sql 2005 or later)
I cant do "FOR XML PATH" (2005 or later also)

I managed to get the data in the format desired with @table vars +
while + update:

-- This code works, but is kinda nasty
declare @tabla table(numcener tinyint, numpedid int, numlnent
nvarchar(5))
declare @retorno table(numcener tinyint, numpedid int, entregas
nvarchar(4000))
insert into
        @tabla(numcener, numpedid, numlnent)
        (select numcener, numpedid, convert(nvarchar(5),numlnent) from
tcolinen where numcener = 99 and numpedid < 2520)
select * from @tabla
insert into @retorno(numcener, numpedid, entregas)
        (select numcener, numpedid, min(numlnent) from @tabla group by
numcener, numpedid)
delete t from @tabla t inner join
(select numcener, numpedid, min(numlnent) minimo from @tabla group by
numcener, numpedid) v on t.numcener = v.numcener and t.numpedid =
v.numpedid and t.numlnent = v.minimo
while exists (select numcener from @tabla)
begin
        update r set r.entregas = r.entregas + ',' + v.agregar from @retorno
r inner join
                (select t.numcener, t.numpedid, min(t.numlnent) agregar from
@retorno r left join @tabla t on t.numcener = r.numcener and
t.numpedid = r.numpedid where not t.numcener is null group by
t.numcener, t.numpedid) v on r.numcener = v.numcener and r.numpedid =
v.numpedid
        delete t from @tabla t inner join
                (select numcener, numpedid, min(numlnent) minimo from @tabla group
by numcener, numpedid) v on t.numcener = v.numcener and t.numpedid =
v.numpedid and t.numlnent = v.minimo
end
select * from @retorno

Is there a less dirty way to do such that thing?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erland Sommarskog  
View profile  
 More options Feb 1, 6:36 am
Newsgroups: comp.databases.ms-sqlserver
From: Erland Sommarskog <esq...@sommarskog.se>
Date: Wed, 1 Feb 2012 11:36:21 +0000 (UTC)
Local: Wed, Feb 1 2012 6:36 am
Subject: Re: Custom agregation in Sql server 6

In SQL 2000, no matter the compatibility mode, creating comma-separated
lists means lots of dirty work. I didn't check your solution in detail, but
if you have it work, there is no idea to look for anything better. Well, it
is better to do it the client, that's where presentation belongs.

--
Erland Sommarskog, SQL Server MVP, esq...@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books...
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
bradbury9  
View profile  
 More options Feb 1, 9:27 am
Newsgroups: comp.databases.ms-sqlserver
From: bradbury9 <ray.bradbu...@gmail.com>
Date: Wed, 1 Feb 2012 06:27:50 -0800 (PST)
Local: Wed, Feb 1 2012 9:27 am
Subject: Re: Custom agregation in Sql server 6
On 1 feb, 12:36, Erland Sommarskog <esq...@sommarskog.se> wrote:

Well, the code does work. My guess is that was no nice and clean
solution but was not sure about it.

Thanks or the feedback.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »