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.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 What's wrong with this Query?

Author  Topic 

HimickE
Starting Member

3 Posts

Posted - 2009-01-28 : 14:41:10
This query loops(never comes back) and I know it's after the "INSERT @ValidAccounts" statements.............

Any help will be appreciated GREATLY.


DECLARE
@ParmOpMode char (1),
@ParmUserKey int,
@ParmFiscalYearEnd smallint,
-- $$$
@ParmSocial char (9),
@ParmDateSelectType tinyint,
@ParmDate1 datetime,
@ParmDate2 datetime,
@SocialMask Char (9)

DECLARE @AccountList TABLE (
RowType tinyint,
UserKey int,
FiscalYearEnd smallint,
Account char (19),
DisplayAccount char (24),
-- the following are specific to "ByEmployee"
DistrictName char (30),
FullName char (50),
Social char (9),
PayDate datetime,
Amount money,
GrandTotalAmount money
)

SET @ParmOpMode = 'Q'
SET @ParmUserKey = 10020
SET @ParmFiscalYearEnd = 2009
SET @ParmSocial = '*********'
SET @ParmDateSelectType = 1

SET @SocialMask = REPLACE (@ParmSocial, '*', '_')

DECLARE
@DistrictName char (30),
@EarlyDate DateTime,
@LateDate DateTime,
@QueryBeginDate DateTime,
@QueryEndDate DateTime,
@TempTotalAmount money

SET @EarlyDate = '01-01-1980 12:00 AM'
SET @LateDate = '12-31-2099 11:59:59 PM'

-- SET default date [ only matters if @ParmDateSelectType is not 1-5]

SET @QueryBeginDate = @EarlyDate
SET @QueryEndDate= @LateDate

-- 1 is "Any"

IF @ParmDateSelectType = 1
BEGIN
SET @QueryBeginDate = @EarlyDate
SET @QueryEndDate = @LateDate
END

-- 2 is "After"

IF @ParmDateSelectType = 2
BEGIN
SET @QueryBeginDate = @ParmDate1
SET @QueryEndDate = @LateDate
END

-- 3 is "Before"

IF @ParmDateSelectType = 3
BEGIN
SET @QueryBeginDate = @EarlyDate
SET @QueryEndDate = @ParmDate1
END

-- 4 is "Between"

IF @ParmDateSelectType = 4
BEGIN
SET @QueryBeginDate = @ParmDate1
SET @QueryEndDate = @ParmDate2
END

-- 5 is "On"

IF @ParmDateSelectType = 5
BEGIN
SET @QueryBeginDate = @ParmDate1
SET @QueryEndDate = @ParmDate1
END

SELECT @DistrictName = DistrictName FROM ResaDistrict

DECLARE @ValidAccounts TABLE (
FiscalYearEnd smallint,
Account char (19) PRIMARY KEY,
DisplayAccount char (24))

INSERT @ValidAccounts
(FiscalYearEnd, Account, DisplayAccount)
SELECT
fxqa.FiscalYearEnd,
fxqa.Account,
fxqa.DisplayAccount
FROM fxAnalysis_v0400_000_QueryAccounts ('Q', @ParmUserKey, @ParmFiscalYearEnd, @ParmFiscalYearEnd) fxqa

-- Insert data from glDist !

IF @SocialMask = REPLICATE ('_', 9)
BEGIN
INSERT @AccountList
(RowType, UserKey, FiscalYearEnd, Account, DisplayAccount, DistrictName,
FullName, Social, PayDate, Amount, GrandTotalAmount)
SELECT
1 AS RowType,
@ParmUserKey AS UserKey,
--al.FiscalYearEnd,
'2009',
--al.Account,
'1234567890123456789',
--al.DisplayAccount,
'12-345-6789-012-345-6789',
@DistrictName AS DistrictName,
pe.FullName,
pe.Social,
gl.dDate AS PayDate,
gl.Amount AS Amount,
0 AS GrandTotalAmount
FROM PayEmployee pe INNER JOIN PayGlDist gl
ON gl.Social = pe.Social
AND DATEDIFF (day, @QueryBeginDate, gl.dDate) >= 0
AND DATEDIFF (day, gl.dDate, @QueryEndDate) >= 0
END

-Ed-

revdnrdy
Posting Yak Master

220 Posts

Posted - 2009-01-28 : 15:22:28
Well just taking a stab at it..

Shouldn't the syntax be

INSERT INTO @ValidAccounts

rather than

INSERT @ValidAccounts ?

r&r


Go to Top of Page

HimickE
Starting Member

3 Posts

Posted - 2009-01-28 : 16:10:45
quote:
Originally posted by revdnrdy

Well just taking a stab at it..

Shouldn't the syntax be

INSERT INTO @ValidAccounts

rather than

INSERT @ValidAccounts ?

r&r






INSERT INTO and INSERT are the same........

-Ed-
Go to Top of Page

revdnrdy
Posting Yak Master

220 Posts

Posted - 2009-01-28 : 16:22:31
ok I wasn't sure..

What does this function do?
fxAnalysis_v0400_000_QueryAccounts ('Q', @ParmUserKey, @ParmFiscalYearEnd, @ParmFiscalYearEnd)

Why do you feed it @ParmFiscalYearEnd twice? I ask naively of course.

r&r

Go to Top of Page

HimickE
Starting Member

3 Posts

Posted - 2009-01-29 : 07:47:24
quote:
Originally posted by revdnrdy

ok I wasn't sure..

What does this function do?
fxAnalysis_v0400_000_QueryAccounts ('Q', @ParmUserKey, @ParmFiscalYearEnd, @ParmFiscalYearEnd)

Why do you feed it @ParmFiscalYearEnd twice? I ask naively of course.

r&r




IT finds a set of Accounts.

The parm is passed twice, because in some cases, we pass more than one year.........

PS> This function works fine. The loop occurs after that query.
Go to Top of Page

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2009-01-29 : 08:16:29
There is no loop in the posted code
DECLARE	@ParmOpMode char (1), 
@ParmUserKey int,
@ParmFiscalYearEnd smallint,
@ParmSocial char (9),
@ParmDateSelectType tinyint,
@ParmDate1 datetime,
@ParmDate2 datetime,
@SocialMask Char (9)

DECLARE @AccountList TABLE
(
RowType tinyint,
UserKey int,
FiscalYearEnd smallint,
Account char (19),
DisplayAccount char (24),
DistrictName char (30),
FullName char (50),
Social char (9),
PayDate datetime,
Amount money,
GrandTotalAmount money
)

SELECT @ParmOpMode = 'Q',
@ParmUserKey = 10020,
@ParmFiscalYearEnd = 2009,
@ParmSocial = '*********',
@ParmDateSelectType = 1

SET @SocialMask = REPLACE (@ParmSocial, '*', '_')

DECLARE @DistrictName char (30),
@EarlyDate DateTime,
@LateDate DateTime,
@QueryBeginDate DateTime,
@QueryEndDate DateTime,
@TempTotalAmount money

SELECT @EarlyDate = '01-01-1980 12:00 AM',
@LateDate = '12-31-2099 11:59:59 PM'

SELECT @QueryBeginDate = @EarlyDate,
@QueryEndDate= @LateDate

IF @ParmDateSelectType = 1
SELECT @QueryBeginDate = @EarlyDate,
@QueryEndDate = @LateDate

IF @ParmDateSelectType = 2
SELECT @QueryBeginDate = @ParmDate1,
@QueryEndDate = @LateDate

IF @ParmDateSelectType = 3
SELECT @QueryBeginDate = @EarlyDate,
@QueryEndDate = @ParmDate1

IF @ParmDateSelectType = 4
SELECT @QueryBeginDate = @ParmDate1,
@QueryEndDate = @ParmDate2

IF @ParmDateSelectType = 5
SELECT @QueryBeginDate = @ParmDate1,
@QueryEndDate = @ParmDate1

SELECT @DistrictName = DistrictName
FROM ResaDistrict

DECLARE @ValidAccounts TABLE
(
FiscalYearEnd smallint,
Account char (19) PRIMARY KEY,
DisplayAccount char (24)
)

INSERT @ValidAccounts
(
FiscalYearEnd,
Account,
DisplayAccount
)
SELECT FiscalYearEnd,
Account,
DisplayAccount
FROM fxAnalysis_v0400_000_QueryAccounts('Q', @ParmUserKey, @ParmFiscalYearEnd, @ParmFiscalYearEnd) AS fxqa

IF @SocialMask = REPLICATE ('_', 9)
INSERT @AccountList
(
RowType,
UserKey,
FiscalYearEnd,
Account,
DisplayAccount,
DistrictName,
FullName,
Social,
PayDate,
Amount,
GrandTotalAmount
)
SELECT 1 AS RowType,
@ParmUserKey AS UserKey,
'2009',
'1234567890123456789',
'12-345-6789-012-345-6789',
@DistrictName AS DistrictName,
pe.FullName,
pe.Social,
gl.dDate AS PayDate,
gl.Amount AS Amount,
0 AS GrandTotalAmount
FROM PayEmployee as pe
INNER JOIN PayGlDist AS gl ON gl.Social = pe.Social
AND @QueryBeginDate <= gl.dDate
AND gl.dDate <= @QueryEndDate



E 12°55'05.63"
N 56°04'39.26"
Go to Top of Page
   

- Advertisement -