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
 General SQL Server Forums
 New to SQL Server Programming
 Stored Procedure(s) Use in SQL Reporting Services

Author  Topic 

werseyjersey
Starting Member

47 Posts

Posted - 2008-08-22 : 13:58:48
I am trying to get my stored procedure to work in SQL Reporting Services. It seems to pull just fine and dandy but I get some people with duplicate rows. Additionally, I want to sum by a particular EarnCode say (SIC) or (VAC). It doesn't seem to be doing that part of the query. I have looked and looked and I am not seeing it. Can someone with fresh eyes take a look and tell me what I am doing wrong. I am fairly new to SQL Reporting Services so maybe I didn't something stupid. Thanks.

Here is the entire stored procedure:
SELECT
PER_1.EmpNo, JOB.PositionIdNo, JOB.PositionCodeSeqNo, JOB.PositionCode, JOB.GL_Job AS Job, JOB.CCS_Title AS JobCCSTitle,
JOB.Client_Title AS JobClientTitle, JOB.Kronos_Dept, PER_1.LastName, PER_1.FirstName, JOB.FTEBudgetHours, JOB.FTEHoursPerWeek,
PER_1.ExemptStatusInd, JOB.FTEBudget AS JOBFTEBudget, PER_1.FTEHoursPerWeek AS PER1FTEHoursPerWeek, CAT1.SumHrs, CAT1.Expr1
FROM
(SELECT DISTINCT
V_Kr_PersonPosition.PositionIdNo, V_Kr_JobPosition.PositionCodeSeqNo, V_Kr_JobPosition.GL_Job, V_Kr_JobPosition.Client_Title,
V_Kr_JobPosition.CCS_Title, V_Kr_JobPosition.FTEBudget, ADP_PayrollMaster.PayrollStart, ADP_PayrollMaster.PayrollEnd
FROM V_Kr_JobPosition LEFT OUTER JOIN
ADP_PayData INNER JOIN
ADP_PayrollMaster ON ADP_PayData.PayrollmasterID = ADP_PayrollMaster.PayrollMasterID INNER JOIN
V_Kr_PersonPosition ON ADP_PayData.PersonID = V_Kr_PersonPosition.EmpNo ON
V_Kr_JobPosition.PositionIdNo = V_Kr_PersonPosition.PositionIdNo
WHERE (@PED BETWEEN V_Kr_PersonPosition.PersonFromEffectDate AND V_Kr_PersonPosition.PersonToEffectDate) AND (@PED BETWEEN
V_Kr_PersonPosition.PositionFromEffectDate AND V_Kr_PersonPosition.PositionToEffectDate) AND
(ADP_PayrollMaster.PayrollStart = CONVERT(DATETIME, '2008-07-05 00:00:00', 102)) AND
(ADP_PayrollMaster.PayrollEnd = CONVERT(DATETIME, '2008-07-19 00:00:00', 102)) AND (V_Kr_JobPosition.FTEBudget IS NOT NULL)
GROUP BY V_Kr_PersonPosition.PersonIdNo, V_Kr_PersonPosition.PositionIdNo, V_Kr_JobPosition.GL_Job, V_Kr_JobPosition.Client_Title,
V_Kr_JobPosition.CCS_Title, V_Kr_JobPosition.FTEBudget, ADP_PayrollMaster.PayrollStart, ADP_PayrollMaster.PayrollEnd,
V_Kr_JobPosition.PositionCodeSeqNo) AS VPP RIGHT OUTER JOIN
(SELECT DISTINCT
TJC.JobCode, TJC.JobCodeDescription, TPC.PositionIdNo, TPC.PositionCodeSeqNo, TPC.PositionCode,
TPC.PositionCodeDescription AS CCS_Title, TPC.PositionCodeUserDefined1 AS Kronos_Dept,
TPC.PositionCodeUserDefined2 AS Client_Title, TPC.FTEBudget, TPC.FTEBudgetHours, TPC.FTEHoursPerWeek,
ORGJ.GLSegment AS GL_Job, ORGB.GLSegment AS GL_BU, ORGC.GLSegment AS GL_CC, ORGP.GLSegment AS GL_PG
FROM Staging.dbo.tPOSITION_ORGS AS TPO_3 INNER JOIN
Staging.dbo.tORGANIZATIONS AS ORGP ON TPO_3.OrgCodeIdNo = ORGP.OrgCodeIdNo INNER JOIN
Staging.dbo.tORGANIZATIONS AS ORGC INNER JOIN
Staging.dbo.tPOSITION_ORGS AS TPO_2 ON ORGC.OrgCodeIdNo = TPO_2.OrgCodeIdNo INNER JOIN
Staging.dbo.tORGANIZATIONS AS ORGJ INNER JOIN
Staging.dbo.tPOSITION_ORGS AS TPO INNER JOIN
Staging.dbo.tPOSITION_CODES AS TPC ON TPO.PositionIdNo = TPC.PositionIdNo INNER JOIN
Staging.dbo.tJOB_CODES AS TJC ON TPC.JobCodeIdNo = TJC.JobCodeIdNo ON ORGJ.OrgCodeIdNo = TPO.OrgCodeIdNo INNER JOIN
Staging.dbo.tPOSITION_ORGS AS TPO_1 INNER JOIN
Staging.dbo.tORGANIZATIONS AS ORGB ON TPO_1.OrgCodeIdNo = ORGB.OrgCodeIdNo ON TPC.PositionIdNo = TPO_1.PositionIdNo ON
TPO_2.PositionIdNo = TPC.PositionIdNo ON TPO_3.PositionIdNo = TPC.PositionIdNo
WHERE (LTRIM(RTRIM(ORGC.GLSegment)) = @Location) AND (ORGC.OrganizationTypeIdNo = 3) AND (ORGB.OrganizationTypeIdNo = 10) AND
(ORGJ.OrganizationTypeIdNo = 9) AND (ORGP.OrganizationTypeIdNo = 11) AND (@PED BETWEEN ORGJ.OrganizationFromEffectDate AND
ORGJ.OrganizationToEffectDate) AND (@PED BETWEEN ORGB.OrganizationFromEffectDate AND ORGB.OrganizationToEffectDate) AND
(@PED BETWEEN ORGC.OrganizationFromEffectDate AND ORGC.OrganizationToEffectDate) AND (@PED BETWEEN
ORGP.OrganizationFromEffectDate AND ORGP.OrganizationToEffectDate) AND (@PED BETWEEN TPO.PositionOrgFromEffectDate AND
TPO.PositionOrgToEffectDate) AND (@PED BETWEEN TPO_1.PositionOrgFromEffectDate AND TPO_1.PositionOrgToEffectDate) AND
(@PED BETWEEN TPO_2.PositionOrgFromEffectDate AND TPO_2.PositionOrgToEffectDate) AND (@PED BETWEEN
TPO_3.PositionOrgFromEffectDate AND TPO_3.PositionOrgToEffectDate) AND (@PED BETWEEN TPC.PositionCodeFromEffectDate AND
TPC.PositionCodeToEffectDate) AND (@PED BETWEEN TJC.JobCodeFromEffectDate AND TJC.JobCodeToEffectDate)) AS JOB ON
VPP.PositionIdNo = JOB.PositionIdNo AND VPP.PositionCodeSeqNo = JOB.PositionCodeSeqNo LEFT OUTER JOIN
(SELECT DISTINCT
ES.EmpNo, PRP.PositionIdNo, PER.PersonIdNo, PER.FirstName, PER.LastName, PER.BirthDate, PRP.ExemptStatusInd,
PRP.FTEHoursPerWeek, ES.EmploymentStatus, ES.FullTimeInd, ES.LastHireDate, ES.OriginalHireDate, ES.SeniorityDate,
ES.TerminationDate
FROM Staging.dbo.tPERSONS AS PER INNER JOIN
Staging.dbo.tEMPLOYMENT_STATUS AS ES ON PER.PersonIdNo = ES.PersonIdNo INNER JOIN
Staging.dbo.tPERSON_POSITIONS AS PRP ON PER.PersonIdNo = PRP.PersonIdNo INNER JOIN
Staging.dbo.tPERSON_ADDRESSES AS PRA ON PER.PersonIdNo = PRA.PersonIdNo INNER JOIN
Staging.dbo.tLOCAL_CODES AS LC ON PRA.PersonAddressStateProvinceIdNo = LC.LocalCodeIdNo
WHERE (@PED BETWEEN PER.PersonFromEffectDate AND PER.PersonToEffectDate) AND (@PED BETWEEN
PRA.PersonAddressFromEffectDate AND PRA.PersonAddressToEffectDate) AND (@PED BETWEEN
ES.EmploymentStatusFromEffectDate AND ES.EmploymentStatusToEffectDate) AND (@PED BETWEEN PRP.PositionFromEffectDate AND
PRP.PositionToEffectDate) AND (@PED BETWEEN LC.LocalCodeFromEffectDate AND LC.LocalCodeToEffectDate)) AS PER_1 ON
PER_1.PositionIdNo = JOB.PositionIdNo LEFT OUTER JOIN
(SELECT DISTINCT
ADP_Hrs.HrsAmt AS SumHrs, ADP_Hrs.PersonID, V_Kr_PersonPosition_1.PositionIdNo, V_Kr_PersonPosition_1.PersonIdNo,
V_Kr_JobPosition_1.PositionCode, V_Kr_JobPosition_1.PositionIdNo AS Expr1, V_Kr_JobPosition_1.PositionCodeSeqNo
FROM V_Kr_JobPosition AS V_Kr_JobPosition_1 INNER JOIN
V_Kr_PersonPosition AS V_Kr_PersonPosition_1 ON V_Kr_JobPosition_1.PositionIdNo = V_Kr_PersonPosition_1.PositionIdNo INNER JOIN
ADP_Hrs ON V_Kr_PersonPosition_1.EmpNo = ADP_Hrs.PersonID INNER JOIN
ADP_PayrollMaster AS ADP_PayrollMaster_1 INNER JOIN
ADP_PayData AS ADP_PayData_1 ON ADP_PayrollMaster_1.PayrollMasterID = ADP_PayData_1.PayrollmasterID ON
ADP_Hrs.PayDataID = ADP_PayData_1.PayDataID
WHERE (ADP_Hrs.HrsCode = 'REG')
GROUP BY V_Kr_PersonPosition_1.PersonFromEffectDate, V_Kr_PersonPosition_1.PersonToEffectDate,
V_Kr_PersonPosition_1.EmploymentStatusFromEffectDate, V_Kr_JobPosition_1.PositionCodeSeqNo,
V_Kr_PersonPosition_1.EmploymentStatusToEffectDate, V_Kr_PersonPosition_1.PositionFromEffectDate,
V_Kr_PersonPosition_1.PositionToEffectDate, ADP_Hrs.HrsCode, V_Kr_PersonPosition_1.EmpNo, ADP_Hrs.HrsAmt,
ADP_PayrollMaster_1.PayrollStart, ADP_PayrollMaster_1.PayrollEnd, ADP_Hrs.PersonID, V_Kr_PersonPosition_1.PositionIdNo,
V_Kr_PersonPosition_1.PersonIdNo, V_Kr_JobPosition_1.PositionCode, V_Kr_JobPosition_1.PositionIdNo) AS CAT1 ON
CAT1.PositionIdNo = VPP.PositionIdNo AND VPP.PositionIdNo = CAT1.PositionIdNo AND VPP.PositionCodeSeqNo = CAT1.PositionCodeSeqNo


Here is a snippet of data that I am seeing that doesn't seem to be pulling into the query correctly.

EmpNO PositionIDNO PositionCodeSeqNO PositionCode Job JobTitle JobClient KronosDep LastName FirstName FTEBudHours FTEHrsPerWk ExemptStatusInd JobFTEBud FTEHrsPerWk SumHrs
200216          512 513 RN1300-195-D    611 RN-195 RN 195611 Bailey Jones 80 40 FALSE 2 40 67.5
200216          512 513 RN1300-195-D    611 RN-195 RN 195611 Bailey Jones 80 40 FALSE 2 40 72.75
200216          512 513 RN1300-195-D    611 RN-195 RN 195611 Bailey Jones 80 40 FALSE 2 40 76.25
200216          512 513 RN1300-195-D    611 RN-195 RN 195611 Bailey Jones 80 40 FALSE 2 40 80
@PED 7/19/2008 @Location 195

I am on a deadline of COB today so would appreciate a quick response.



werseyjersey

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-08-22 : 14:07:57
its very difficult to see whats happening in your code. Only thing i can tell is that out of current result you need to group on everything except SumHrs field and take sum of it if you want a single row out of above sample data
Go to Top of Page

werseyjersey
Starting Member

47 Posts

Posted - 2008-08-22 : 15:06:08
I think I understand so I need to have a final "GROUPBY" that takes the fields that I want leaving out the SumHrs and then take the sumtotal of the SumHrs, right, and yes it is very difficult because Kronos is the warehouse for the data and they don't make it easy to extract the data thus the reason for all the selects!

werseyjersey
Go to Top of Page

sodeep
Master Smack Fu Yak Hacker

7174 Posts

Posted - 2008-08-22 : 15:45:21
One thing I see is that you are using Distinct and GroupBy together.
Go to Top of Page

werseyjersey
Starting Member

47 Posts

Posted - 2008-08-22 : 16:37:45
Like I said I have tried everything but nothing seems to work I took all the group by's out and it still pulls too many rows!!! YEAK!

werseyjersey
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-08-23 : 01:16:05
quote:
Originally posted by werseyjersey

Like I said I have tried everything but nothing seems to work I took all the group by's out and it still pulls too many rows!!! YEAK!

werseyjersey


then post some data (about 5 related rows) from all the tables and then explain what output you want out of them.
Go to Top of Page
   

- Advertisement -