Unix Technical Forum

SQL stored procedure returns duplicates

This is a discussion on SQL stored procedure returns duplicates within the SQL Server forums, part of the Microsoft SQL Server category; --> I am new to SQL and SQL Server world. There must be a simple solution to this, but I'm ...


Go Back   Unix Technical Forum > Database Server Software > Microsoft SQL Server > SQL Server

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 03-01-2008, 02:44 PM
yin_n_yang74@yahoo.com
 
Posts: n/a
Default SQL stored procedure returns duplicates

I am new to SQL and SQL Server world. There must be a simple solution
to this, but I'm not seeing it. I am trying to create a crystal
report (v8.5) using a stored procedure from SQL Server (v2000) in
order to report from two databases and to enable parameters.

When I create the stored procedure, it joins multiple one-to-many
relationship tables. This results in repeated/duplicate records. Is
this an issue that should be solved within the stored procedure, or is
this inevitable? If latter, how do you eliminate the duplicates in
Crystal Reports?

Let's say we have three different tables - Event, Food, Equipment.
Each event may have multiple food and multiple equipments; some events
may not have food and/or equipments. The stored procedure outcome may
look like this:

Event Food Food_Qty Equipment
Equipment_Qty

Event1 Food2 10 Equipment5
1
Event1 Food4 10
NULL NULL
Event2 Food4 50 Equipment2
10
Event2 Food4 50 Equipment5
2
Event2 Food1 12 Equipment2
10
Event2 Food1 12 Equipment5
2

As you can see in Event2, for each Food variations, Equipment values
repeat. When I am creating a Crystal Reports, I have the duplication
problem.

What I would like to see in the report is either:

Event1
Food2, 10 Equipment5, 1
Food4, 10
Event2
Food4, 50 Equipment2, 10
Food1, 12 Equipment5, 2

OR:

Event1
Food2, 10
Food4, 10
Equipment5, 1
Event2
Food4, 50
Food1, 12
Equipment2, 10
Equipment5, 2

Attempt1: Using "Eliminate Duplicate Record" option does not work with
the Equipment section since CR does not recognize "Equipment2" in the
third line of the table and "Equipment2" in the fifth line of the
table as duplicates.

Event1 Food2, 10 Equipment5, 1
Food4, 10
Event2 Food4, 50 Equipment2, 10
Equipment5, 2
Food1, 12 Equipment2, 10
(duplication)
Equipment5, 2
(duplication)

Attempt2: I created group for each category (Event, Food, Equipment),
put the data in Group Headers and used "Suppress Section" to eliminate
if the same equipments are listed more than once within the Food
group. This eliminated the duplication, but the items do not align
correctly.

Event1 Food2, 10 Equipment5, 1
Food4, 10
Event2 Food4, 50 Equipment2, 10
Equipment5, 2
Food1, 12 (I want this to appear right below the
'Food4, 50' line)

I would really appreciate any suggestions! Thank you in advance.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 03-01-2008, 02:44 PM
othellomy@yahoo.com
 
Posts: n/a
Default Re: SQL stored procedure returns duplicates

On Mar 23, 4:59 am, yin_n_yan...@yahoo.com wrote:
> I am new to SQL and SQL Server world. There must be a simple solution
> to this, but I'm not seeing it. I am trying to create a crystal
> report (v8.5) using a stored procedure from SQL Server (v2000) in
> order to report from two databases and to enable parameters.
>
> When I create the stored procedure, it joins multiple one-to-many
> relationship tables. This results in repeated/duplicate records. Is
> this an issue that should be solved within the stored procedure, or is
> this inevitable? If latter, how do you eliminate the duplicates in
> Crystal Reports?
>
> Let's say we have three different tables - Event, Food, Equipment.
> Each event may have multiple food and multiple equipments; some events
> may not have food and/or equipments. The stored procedure outcome may
> look like this:
>
> Event Food Food_Qty Equipment
> Equipment_Qty
>
> Event1 Food2 10 Equipment5
> 1
> Event1 Food4 10
> NULL NULL
> Event2 Food4 50 Equipment2
> 10
> Event2 Food4 50 Equipment5
> 2
> Event2 Food1 12 Equipment2
> 10
> Event2 Food1 12 Equipment5
> 2
>
> As you can see in Event2, for each Food variations, Equipment values
> repeat. When I am creating a Crystal Reports, I have the duplication
> problem.
>
> What I would like to see in the report is either:
>
> Event1
> Food2, 10 Equipment5, 1
> Food4, 10
> Event2
> Food4, 50 Equipment2, 10
> Food1, 12 Equipment5, 2
>
> OR:
>
> Event1
> Food2, 10
> Food4, 10
> Equipment5, 1
> Event2
> Food4, 50
> Food1, 12
> Equipment2, 10
> Equipment5, 2
>
> Attempt1: Using "Eliminate Duplicate Record" option does not work with
> the Equipment section since CR does not recognize "Equipment2" in the
> third line of the table and "Equipment2" in the fifth line of the
> table as duplicates.
>
> Event1 Food2, 10 Equipment5, 1
> Food4, 10
> Event2 Food4, 50 Equipment2, 10
> Equipment5, 2
> Food1, 12 Equipment2, 10
> (duplication)
> Equipment5, 2
> (duplication)
>
> Attempt2: I created group for each category (Event, Food, Equipment),
> put the data in Group Headers and used "Suppress Section" to eliminate
> if the same equipments are listed more than once within the Food
> group. This eliminated the duplication, but the items do not align
> correctly.
>
> Event1 Food2, 10 Equipment5, 1
> Food4, 10
> Event2 Food4, 50 Equipment2, 10
> Equipment5, 2
> Food1, 12 (I want this to appear right below the
> 'Food4, 50' line)
>
> I would really appreciate any suggestions! Thank you in advance.


Hi,
When you joined with multiple tables it will produce duplicates. One
way is to create a temp table and store the values from one table.
Let's say the Event table. Now your rows are fixed and there are no
duplicates. Then you update the remaining columns lets say you join
with the Food and Equipment table.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 03-01-2008, 02:45 PM
Hugo Kornelis
 
Posts: n/a
Default Re: SQL stored procedure returns duplicates

On 22 Mar 2007 15:59:59 -0700, yin_n_yang74@yahoo.com wrote:

>When I create the stored procedure, it joins multiple one-to-many
>relationship tables. This results in repeated/duplicate records. Is
>this an issue that should be solved within the stored procedure, or is
>this inevitable? If latter, how do you eliminate the duplicates in
>Crystal Reports?


Hi yin_n_yang74,

You are trying to pair basically unrelated things (yes, both equipment
and food are related to an event, but there is no relationship between a
particular food row for an event and a particular equipment row for the
same event). That's why the join causes the information to be
duplicated. More aboout this problem, and a possible solution if you
want to solve this server-side, is on my blog:
http://sqlblog.com/blogs/hugo_kornel...ated-rows.aspx

However, the best solution is to handle this client side. I must admit
that I know nothing about Crystal Reports. But IF CR can handle it, I'd
advise you to open two seperate rowsets at once (one for event and food
information, using a basic joined query and ordering by event, and one
for the equipment information, also odered by event). Then process row
from both recordsets in a balanced line fashion: read one row from each
set and generate an output line until one set changes event; at that
point deplete the other set until it too changes event. Repeat until
both sets are exhausted.

--
Hugo Kornelis, SQL Server MVP
My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 03-01-2008, 02:45 PM
Ed Murphy
 
Posts: n/a
Default Re: SQL stored procedure returns duplicates

yin_n_yang74@yahoo.com wrote:

> I am new to SQL and SQL Server world. There must be a simple solution
> to this, but I'm not seeing it. I am trying to create a crystal
> report (v8.5) using a stored procedure from SQL Server (v2000) in
> order to report from two databases and to enable parameters.
>
> When I create the stored procedure, it joins multiple one-to-many
> relationship tables. This results in repeated/duplicate records. Is
> this an issue that should be solved within the stored procedure, or is
> this inevitable? If latter, how do you eliminate the duplicates in
> Crystal Reports?


Never mind the stored procedure, have Crystal read the tables
directly: Event from the main report, Food from a subreport,
Equipment from a second subreport. Pass the primary key of
Event to each subreport as a parameter, linking it to the
appropriate foreign key within the subreport.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 03-01-2008, 02:50 PM
yin_n_yang74@yahoo.com
 
Posts: n/a
Default Re: SQL stored procedure returns duplicates

Thank you all for your helpful hands. However, I realized that I was
not putting enough information, which makes it difficult for you to
help me. I will make a new post with more complete information. You
have helped me get closer to what I need, though - thanks!

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 01:02 PM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.UnixAdminTalk.com