473,509 Members | 3,009 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

VERY Complex stored procedure... I'm lost. Help?

3 New Member
I don't even know if this is possible - I'm still fairly new to stored procedures.

I have 4 tables I need to compile data from:
saved_searches
saved_homes
printed_homes
member_info

saved_searches, saved_homes and printed_homes each track the date they were created.

I need to grab all the users from member_info who have had activity in saved_searches, saved_homes and printed_homes between now and X date, along with how many of each (sum(id)) they have performed from saved_searches, saved_homes and printed_homes.

I need to order the results by who has had the most activity in the specified date range, meaning the sum of the sum(id) from the searches going into saved_searches, saved_homes and printed_homes.

The results also have to be restricted to a field in member_info matched to an additional parameter.

Ok... that's a mouthful.

Here's the concept so far:

The following stored procedure would be created for saved_searches, saved_homes and printed_homes, so I'll just show one as the three tables are pretty similar:

@workingWithID
@maxDate
SELECT sum(id), username FROM saved_searches WHERE username IN
(SELECT username FROM member_info WHERE workingWithID = @workingWithID)
AND searchDate > @maxDate

Now, to get all the member info of those with recent activity, I would have this stored procedure that would call the (above) stored procedures for saved_searches, saved_homes and printed_homes:

@workingWithID
@maxDate
SELECT * FROM member_info WHERE username IN
(sp_savedSearch(@workingWithID,@maxDate))
AND username IN
(sp_savedHomes(@workingWithID,@maxDate))
AND username IN
(sp_printedHomes(@workingWithID,@maxDate))


HOWEVER, this concept wouldn't return the sums generated by the smaller stored procedures....

I am truly lost here - can anyone assist me in making sense of how to accomplish this?

Thank you in advance
-=Patrick=-
Jul 12 '07 #1
2 5288
Infide
28 New Member
I don't even know if this is possible - I'm still fairly new to stored procedures.

I have 4 tables I need to compile data from:
saved_searches
saved_homes
printed_homes
member_info

saved_searches, saved_homes and printed_homes each track the date they were created.

I need to grab all the users from member_info who have had activity in saved_searches, saved_homes and printed_homes between now and X date, along with how many of each (sum(id)) they have performed from saved_searches, saved_homes and printed_homes.

I need to order the results by who has had the most activity in the specified date range, meaning the sum of the sum(id) from the searches going into saved_searches, saved_homes and printed_homes.

The results also have to be restricted to a field in member_info matched to an additional parameter.

Ok... that's a mouthful.

Here's the concept so far:

The following stored procedure would be created for saved_searches, saved_homes and printed_homes, so I'll just show one as the three tables are pretty similar:

@workingWithID
@maxDate
SELECT sum(id), username FROM saved_searches WHERE username IN
(SELECT username FROM member_info WHERE workingWithID = @workingWithID)
AND searchDate > @maxDate

Now, to get all the member info of those with recent activity, I would have this stored procedure that would call the (above) stored procedures for saved_searches, saved_homes and printed_homes:

@workingWithID
@maxDate
SELECT * FROM member_info WHERE username IN
(sp_savedSearch(@workingWithID,@maxDate))
AND username IN
(sp_savedHomes(@workingWithID,@maxDate))
AND username IN
(sp_printedHomes(@workingWithID,@maxDate))


HOWEVER, this concept wouldn't return the sums generated by the smaller stored procedures....

I am truly lost here - can anyone assist me in making sense of how to accomplish this?

Thank you in advance
-=Patrick=-
I do not believe you can use stored procedures in this way, at least not in sql server. If you create functions you could call them in the way you are trying to call the stored procs.
Jul 12 '07 #2
trickyidiot
3 New Member
UPDATE

After extensive reading I have changed my approach...

I'm selecting the sums grouped by usernames from each of the three tables and storing them in temp tables but I'm stuck on something I;ve never dopne before - a union select statement

What I hope to achieve with this select statement is a full count of all activity per member, and from there I should be able to loop through those results and grab the member info, the full sum of all activity, and each separate sum for each type of activity... I just don't know how to do that within a stored procedure...


Here's what I have so far - please help!!!

CREATE PROCEDURE dbo.memberRecentActivity
@workingWithID int(4)
@maxDate datetime

AS

-- Variables --
DECLARE @savedSearches nvarchar(4000),
@savedHomes nvarchar(4000),
@printedHomes nvarchar(4000),
@combinedSums nvarchar(4000)

-- Set SAVED SEARCHEs --
SET @savedSearches = (SELECT sum(id), username FROM endeavor_search WHERE searchDate > @maxDate AND username IN (SELECT username FROM endeavor_memberInfo WHERE workingWith = @workingWithID) GROUP BY username)
IF @savedSearches = ' ' SET @savedSearches = ' '

-- Create Temporary Local Table for saved searches --
DECLARE @svdSrchTable TABLE (sum int(4), username varchar(50))
INSERT INTO @svdSrchTable SELECT value FROM dbo.fnc_split(@savedSearches, ',')


-- Set SAVED HOMES --
SET @savedHomes = (SELECT sum(id), username FROM endeavor_mlsSaved WHERE mlsDate > @maxDate AND username IN (SELECT username FROM endeavor_memberInfo WHERE workingWith = @workingWithID) GROUP BY username)
IF @savedHomes = ' ' SET @savedHomes = ' '

-- Create Temporary Local Table for saved homes --
DECLARE @svdHomeTable TABLE (sum int(4), username varchar(50))
INSERT INTO @svdHomeTable SELECT value FROM dbo.fnc_split(@savedHomes, ',')


-- Set PRINTED HOMES --
SET @printedHomes = (SELECT sum(id), username FROM endeavor_mlsPrint WHERE mlsDate > @maxDate AND username IN (SELECT username FROM endeavor_memberInfo WHERE workingWith = @workingWithID) GROUP BY username)
IF @printedHomes = ' ' SET @printedHomes = ' '

-- Create Temporary Local Table for printed homes --
DECLARE @prntHomeTable TABLE (sum int(4), username varchar(50))
INSERT INTO @prntHomeTable SELECT value FROM dbo.fnc_split(@printedHomes, ',')


-- Set COMBINED SUMS --
SET @combinedSums = (SELECT sum(id) as totalSum, username from @svdSrchTable UNION SELECT sum(id) as totalSum, username from @svdHomeTable UNION SELECT sum(id) as totalSum, username from @prntHomeTable GROUP BY username ORDER BY totalSum)
Jul 12 '07 #3

Sign in to post your reply or Sign up for a free account.

Similar topics

1
1908
by: Peter Rilling | last post by:
To minimize database calls, I would like to have a single stored procedure return all the data necessary to display on my page. This information is related from several different tables and what I...
1
1490
by: Marcel Boscher | last post by:
Hey guys, i got a question that bothers me quite a while, been looking everywhere but found no answer My idea is to automate this procedure for better performance... Can anybody in here...
0
2188
by: dumbledad | last post by:
Hi All, I'm having trouble moving from a query that calls a MySQL 5 stored procedure to a query that calls a simple SQL INSERT. Here's the relevant part of the code that calls the stored...
3
35348
by: Jack Turnbull | last post by:
Hi, Am new to Stored Procedures and am lost how to achieve the following. I have this table:- CREATE TABLE . ( IDENTITY (1, 1) NOT NULL , NULL , (50) COLLATE Latin1_General_CI_AS NULL ,...
2
1433
by: vncntj | last post by:
I'm trying to passing the Session value back to the store procedure, but I'm having difficulty understanding stored procedures and parameters. What I'm trying to accomplish is to have the Session...
9
2446
by: Frawls | last post by:
Hi I Am am having problems with a stored Procedure that i wrote. Basically whats happening is that the Stored procedure Runs fine when i EXECUTE it in SQL Query analyzer. But when i debug...
0
1712
by: Bruno Barberi Gnecco | last post by:
I'm using stored procedures in a PHP site, with mysql. I'm having problems with stored procedures. Of the two I'm using, one works all the time, consistently. The other works correctly, but the...
0
1378
by: esmith2112 | last post by:
Is there any way to retain the permissions previously granted on a stored procedure through an explicit "GRANT EXECUTE" statement, after recompiling said procedure? We are using group permissions...
5
1975
by: william.david.anderson | last post by:
Hi there, I have a newbie stored procedures performance question that I'm hoping someone can answer. It seems like one of the benefits of using SQL stored procedures is that they can reduce...
0
7234
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7344
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7412
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7069
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5652
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
4730
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3216
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
3203
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
775
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.