VBdotnet2005
asked on
Union and Group by
I want to group them up. This is my sample data and the result I want it to returns.
cellprepared ID COL001 COL002 COL003 COL004 COL005 COL006 COL007 COL008
ZIP 1 2014-12-31 00:00:00 99 AAA
ZIP 4 2014-12-02 00:00:00 993710 AAA
ZIP 7 2014-12-10 00:00:00 993720 AAA
TRANSNO 1 2014-12-31 00:00:00 99 AAA
TRANSNO 2 2014-12-17 00:00:00 12303 AAA
Result
ID COL001 COL002 COL003 COL004 COL005 COL006 COL007 COL008 cellprepared
1 2014-12-31 00:00:00 99 AAA ZIP, TRANSNO
2 2014-12-17 00:00:00 AAA TRANSNO
etc
SELECT 'ZIP' as cellprepared, * FROM TMPTABLE
WHERE Col002 NOT IN (SELECT distinct ZIP FROM ZIPTABLE)
UNION ALL
SELECT 'TRANSNO' as cellprepared, *
FROM TMPTABLE
WHERE not exists (Select transno_no from TRANSNOTABLE where transno_no = Col003)
cellprepared ID COL001 COL002 COL003 COL004 COL005 COL006 COL007 COL008
ZIP 1 2014-12-31 00:00:00 99 AAA
ZIP 4 2014-12-02 00:00:00 993710 AAA
ZIP 7 2014-12-10 00:00:00 993720 AAA
TRANSNO 1 2014-12-31 00:00:00 99 AAA
TRANSNO 2 2014-12-17 00:00:00 12303 AAA
Result
ID COL001 COL002 COL003 COL004 COL005 COL006 COL007 COL008 cellprepared
1 2014-12-31 00:00:00 99 AAA ZIP, TRANSNO
2 2014-12-17 00:00:00 AAA TRANSNO
etc
SELECT 'ZIP' as cellprepared, * FROM TMPTABLE
WHERE Col002 NOT IN (SELECT distinct ZIP FROM ZIPTABLE)
UNION ALL
SELECT 'TRANSNO' as cellprepared, *
FROM TMPTABLE
WHERE not exists (Select transno_no from TRANSNOTABLE where transno_no = Col003)
ASKER
Yes, please
ASKER
I don't have account for your link.
HI,
An account is free ...
Regards
David
An account is free ...
Regards
David
ASKER
Can you use my sample and modify it instead?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Is "Stuff" a function?
yes it adds or removes data within a string
Hi,
Code from the article mentioned above (pubs was a test table for SQL 2000)
Code from the article mentioned above (pubs was a test table for SQL 2000)
use pubs
go
if exists
(
select name
from sysobjects
where name = N'test'
and type = 'u'
)
drop table test
go
create table test (
id int,
ord char( 30 ),
indexnum int
);
/*
205 apples 125
205 shoes 223
305 pizza 309
305 marbles 789
*/
set nocount on
insert test values( 205, 'apples', 125 )
insert test values( 205, 'shoes', 223 )
insert test values( 305, 'pizza', 309 )
insert test values( 305, 'marbles', 789 )
set nocount off
-- Values in table
select t2.id, t2.ord, t2.indexnum
from test t2
-- Grouping by id
select t2.id, min( t2.ord )
from test t2
group by t2.id
order by t2.id asc
-- Selecting 1 id
select t2.ord
from test t2
where t2.id = 205
/*
This is the usual way to produce a comma delimited list,
but it does not group it. It returns one string for the
entire results set
*/
declare @OrderList varchar(100)
select
@OrderList = coalesce( @OrderList + ', ', '') + rtrim( t2.ord )
from test t2
where t2.id = 205
select @OrderList
set @OrderList = null
go
-- Using a scaler function to return the comma delimited list
if
object_id (N'dbo.concatFieldNames') is not null
drop function dbo.concatFieldNames
go
create function concatFieldNames (@TableID int)
returns varchar(8000)
as
begin
declare @fields varchar(8000)
set @fields = null
select @fields = coalesce( @fields + ', ', '' ) + rtrim( ord )
from test
where id = @tableid
return @fields
end --function
go
-- The select to use the function
select distinct id, dbo.concatFieldNames(ID)
from test
declare @total int
select
@total = coalesce( @total, 0 ) + indexnum
from test
select @total
select sum( indexnum )
from test
ASKER
Lowfatspread,
I am curious. How can I use where inside left outer join (select distinct zip from ziptable) ?
I am curious. How can I use where inside left outer join (select distinct zip from ziptable) ?
ASKER
never mind :)
what do you need to do ?
(select distinct zip from ziptable where ...... ) as z
(select distinct zip from ziptable where ...... ) as z
What you are asking for is that cellprepared be concatenated.
I wrote a short piece on how to do this here:
http://www.sqlservercentral.com/scripts/Miscellaneous/31894/
HTH
David