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.
| Author |
Topic |
|
tminer
Starting Member
2 Posts |
Posted - 2005-12-06 : 12:00:13
|
| I am very new to SQL and have a T-sql question. i am in over my head with a project given to me. it involves taking records from numerous tables and evaluating different aspects of them, followed by calculating fields based on numerous variables. first i will give my basic select statement:select LD.ldProject, LD.ldLaborCode, LD.ldDate, LD.ldRegHrs, LD.ldOvtHrs, EM.emEmployee, EM.emLastName, EM.emFirstName, EM.emJobCostRate, EM.emStatus, EM.emProfCtr, EM.emSelect1, EM.emSelect3, EM.emSelect16, EM.emSelect18, EM.emSelect20, EM.emSelect21, EM.emTerminationDate, CFGPCControl.LabelFROM { oj (Advantage.dbo.LD LD INNER JOIN Advantage.dbo.EM EM ON LD.ldEmployee = EM.emEmployee) INNER JOIN Advantage.dbo.CFGPCControl CFGPCControl ON EM.emProfCtr = CFGPCControl.ProfCtr}WHERE LD.ldDate between 09-03-2005 AND 09-10-2005 AND EM.emStatus = 'A' AND EM.emSelect1 = 'Salary' AND EM.emSelect3 = 'Engineer/Scientist 1' OR EM.emSelect3 = 'Engineer/Scientist 2' OR EM.emSelect3 = 'Project Engin/Scien.' OR EM.emSelect3 = 'Field Supervisor' OR EM.emSelect3 = 'Party Chief' OR EM.emSelect3 = 'Drafter' OR EM.emSelect3 = 'Drafting/Graphics PM' OR EM.emSelect3 = 'Technician' AND EM.emProfCtr <> 'COCO' AND EM.emProfCtr <> 'COOF' AND EM.emProfCtr <> 'COPE' AND EM.emProfCtr <> 'NOAD' AND EM.emProfCtr <> 'NOFI' AND EM.emProfCtr <> 'NOMK' AND EM.emProfCtr <> 'NOHR' AND EM.emProfCtr <> 'NOGP' AND EM.emProfCtr <> 'NOSY' AND EM.emProfCtr <> 'EAAD' AND EM.emProfCtr <> 'WMAD' AND EM.emprofCtr <> 'HOAD' first problem. i need the records grouped by employee for a certain time period. what i am doing is finding total hours in a certain period (one week) and computing a bonus. the problem is the employees post hours by the job, moybe 3 hours on one job, 2 on another, etc. i need these combined. also, there are numerous variables used in the calculation to find the bonus. productivity, weeks worked, etc. i will include them below. thanks in advance, i have hit a brick wall.variables: /*define vacused variable*/Select @vacused = ldRegHrs + ldOvtHrs From LD Where LD.ldLaborCode like "312??"/* Define totalhours*/Set @totalhours = (Select sum(ldRegHrs) From LD) + (Select sum(ldOvtHrs) From LD)/* Define paid hours*/If exists (Select * From EM where emSelect1 = "Salary") Set @paidhours = @weeksworked * 40Else Set @paidhours = @totalhours/* Define Direct Hours*/Select @directhours = ldRegHrs + ldOvtHrs From LD Where Not LD.ldProject Like "3000010??" And Not LD.ldLaborCode Like "999??" And Not LD.ldLaborCode Like "???99" And Not LD.ldLaborCode Like "3????" And Not LD.ldLaborCode Like "500??"/*Define weekly direct hours*/Select @weeklydirecthours = ldRegHrs + ldOvtHrs From LD Where Not LD.ldProject Like "3000010??" And Not LD.ldLaborCode Like "999??" And Not LD.ldLaborCode Like "???99" And Not LD.ldLaborCode Like "3????" And Not LD.ldLaborCode Like "500??" And LD.ldDate between 09-03-2005 and 09-10-2005/* Define productivity*/ If (Select emEmployee from EM) = " " and @paidhours = 0 Set @productivity = 0 Else If exists (Select * From EM where emSelect1 = "Salary") Set @productivity = (@directhours - 0.0) / ((@weeksworked * 40) - @Vacused) Else Set @productivity = (@directhours) / (@paidhours) If @paidhours = 0 Set @productivity = 0 Else If (Select emselect1 from EM) = 'salary' Set @productivity = (@directhours - (Select emSelect21 From EM)) / ((@weeksworked * 40) - @vacused) Else Set @productivity = (@directhours) / (@paidhours)End/* Define weeksworked */ If (Select emStatus From EM) = 'A' and (Select emSelect18 From EM) = '0' Set @weeksworked = @weeknumber Else If @weeknumber < (Select emSelect18 From EM) Set @weeksworked = 0 Else If @weeknumber = (Select emSelect18 From EM) Set @weeksworked = 1 Else If @weeknumber > (Select emSelect18 From EM) Set @weeksworked = @weeknumber - ((Select emSelect18 From EM) - 1) Else If @weeknumber < (Select emSelect18 From EM) Set @weeksworked = 0 Else If (Select emSelect18 From EM) = 0 and @weeknumber <= @termweekadj Set @weeksworked = @weeknumber Else Set @weeksworked = @termweekadj thanks again to anyone who can offer any help at all.tminer |
|
|
X002548
Not Just a Number
15586 Posts |
|
|
druer
Constraint Violating Yak Guru
314 Posts |
Posted - 2005-12-06 : 12:58:25
|
| 1. Consider using the IN clause along with a NOT IN clause for the biggest chunk of the query up top. In other words if Variable = '1' OR Variable = '2' can become Variable IN ('1', '2') etc. Likewise Variable <> '1' AND Variable <> '2' can become Variable NOT IN ('1','2'). Just to make things easier to read, and to make it easy to change in the future.2. Selecting totals and grouping is pretty easy to do. You just need to use the GROUP BY operator to tell the SUM'ing to be done by a particular column or multiple columns:select EmployeeId, Sum(HourField) as TotalHoursfrom Employeeswhere DateWorked between '05/01/00' and '05/08/00'group by EmployeeId3. Where does the variable @weeksworked come from? I see it being used, but I'm not sure where it is coming from, or what you are using it for.If you could post the table designs and give some sample data that would be a huge help to anyone who is going to try and help with this. |
 |
|
|
tminer
Starting Member
2 Posts |
Posted - 2005-12-06 : 13:25:03
|
| To Clarify:my question is how to generate the sql script for a stored procedure to return summary rows for each emp. (emp.'s have many rows each) after doing numerous calculations for each row.DDL for the tables EM, PR, CFGPC, LD;CREATE TABLE [dbo].[CFGPCControl] ( [ProfCtr] [varchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Label] [varchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [LabDistProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [LabDistTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [MiscProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [MiscTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [UnitsBSProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [UnitsBSTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [UnitsIndProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [UnitsIndTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [UnitsOtherProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [UnitsOtherTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DistributeOH] [bit] NOT NULL , [DistributeTarget] [varchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DistributePass] [smallint] NULL , [OHAllocMethod] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [OHBasis] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [OHRate] [float] NULL , [OHProvisionalRate] [float] NULL , [OHVarianceProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [OHVarianceTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PayrollProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PayrollTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FICAProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FICATask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PlugAmtRev] [float] NULL , [PlugAmtDirLab] [float] NULL , [PlugAmtDirExp] [float] NULL , [PlugAmtIndLab] [float] NULL , [PlugAmtIndExp] [float] NULL , [PrintsProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PrintsTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EmplExpProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EmplExpTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EmplAdvProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EmplAdvTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EmplDefaultBank] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ADPCompanyCode] [varchar] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeDisabled] [bit] NOT NULL , [XChargeRegMult] [float] NULL , [XChargeOHMult] [float] NULL , [XChargeRegDebitProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeRegDebitTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeRegCreditProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeRegCreditTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeOHDebitProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeOHDebitTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeOHCreditProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeOHCreditTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeRegFromProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeRegFromTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeRegToProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeRegToTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeOHFromProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeOHFromTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeOHToProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [XChargeOHToTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ConsAccrProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ConsAccrTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GOCREATE TABLE [dbo].[EM] ( [emEmployee] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [emLastName] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emFirstName] [varchar] (13) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emJobCostRate] [float] NULL , [emJobCostType] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emJCOvtPct] [float] NULL , [emTargetRatio] [float] NULL , [emHoursPerDay] [float] NULL , [emHireDate] [datetime] NULL , [emRaiseDate] [datetime] NULL , [emStatus] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emType] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emProfCtr] [varchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emBillingCategory] [smallint] NULL , [emBillingPool] [smallint] NULL , [emSSN] [varchar] (9) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emAddress1] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emAddress2] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emAddress3] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emCity] [varchar] (18) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emState] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emZIP] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emCountry] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emPhone] [varchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emFAX] [varchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emEMail] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect1] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect2] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect3] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect4] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect5] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect6] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect7] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect8] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect9] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect10] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect11] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect12] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect13] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect14] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect15] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emSelect16] [float] NULL , [emSelect17] [float] NULL , [emSelect18] [float] NULL , [emSelect19] [float] NULL , [emSelect20] [float] NULL , [emSelect21] [float] NULL , [emSelect22] [float] NULL , [emSelect23] [float] NULL , [emSelect24] [float] NULL , [emSelect25] [float] NULL , [emSelect26] [datetime] NULL , [emSelect27] [datetime] NULL , [emSelect28] [datetime] NULL , [emSelect29] [datetime] NULL , [emSelect30] [datetime] NULL , [emTKGroup] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emTKAdminLevel] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emTKAdminEdit] [bit] NOT NULL , [emEKGroup] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emEKAdminLevel] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emEKAdminEdit] [bit] NOT NULL , [emMemo] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emADPFileNumber] [varchar] (6) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emADPCompanyCode] [varchar] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emADPRateCode] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emProvCostRate] [float] NULL , [emProvBillRate] [float] NULL , [emProvCostOTPct] [float] NULL , [emProvBillOTPct] [float] NULL , [emDefaultLC1] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emDefaultLC2] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emDefaultLC3] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emDefaultLC4] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emDefaultLC5] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [emChangeDefaultLC] [bit] NOT NULL , [emTerminationDate] [datetime] NULL , [emTKAdminApproval] [bit] NOT NULL , [emUseTotalHrsAsStd] [bit] NOT NULL , [emJCSpecialOvtPct] [float] NULL , [emProvCostSpecialOTPct] [float] NULL , [emProvBillSpecialOTPct] [float] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOCREATE TABLE [dbo].[PR] ( [prProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [prTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [prName] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prType] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prTaskType] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prPrincipal] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prProjMgr] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSupervisor] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prClient] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prFee] [float] NULL , [prReimbAllow] [float] NULL , [prConsultFee] [float] NULL , [prBudOHRate] [float] NULL , [prStatus] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prRevType] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prMultAmt] [float] NULL , [prProfCtr] [varchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prUnitTable] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prStartDate] [datetime] NULL , [prEndDate] [datetime] NULL , [prPctComp] [float] NULL , [prLabPctComp] [float] NULL , [prExpPctComp] [float] NULL , [prBillByDefault] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prBillableWarning] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect1] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect2] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect3] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect4] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect5] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect6] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect7] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect8] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect9] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect10] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect11] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect12] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect13] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect14] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect15] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prSelect16] [float] NULL , [prSelect17] [float] NULL , [prSelect18] [float] NULL , [prSelect19] [float] NULL , [prSelect20] [float] NULL , [prSelect21] [float] NULL , [prSelect22] [float] NULL , [prSelect23] [float] NULL , [prSelect24] [float] NULL , [prSelect25] [float] NULL , [prSelect26] [datetime] NULL , [prSelect27] [datetime] NULL , [prSelect28] [datetime] NULL , [prSelect29] [datetime] NULL , [prSelect30] [datetime] NULL , [prMemo] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prADPSpecial] [bit] NOT NULL , [prADPRegCode] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prADPRegFieldID] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prADPOvtCode] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prADPOvtFieldID] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prBudgetedFlag] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prBudgetedLevels] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prBillProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prBillTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prXCharge] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prXChargeMethod] [smallint] NULL , [prXChargeMult] [float] NULL , [prAddress] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [prTaskExport] [smallint] NULL , [prSumComp] [smallint] NULL , [prAppendTeam] [smallint] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOCREATE TABLE [dbo].[LD] ( [ldKey] [int] NOT NULL , [ldProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldLaborCode] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldEmployee] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldTransType] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldDate] [datetime] NULL , [ldPeriod] [int] NULL , [ldPostSeq] [smallint] NULL , [ldName] [varchar] (35) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldRegHrs] [float] NULL , [ldOvtHrs] [float] NULL , [ldRegAmt] [float] NULL , [ldOvtAmt] [float] NULL , [ldBillExt] [float] NULL , [ldRate] [float] NULL , [ldOvtPct] [float] NULL , [ldOvtRate] [float] NULL , [ldEmType] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldPool] [smallint] NULL , [ldCategory] [smallint] NULL , [ldEmProfCtr] [varchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldPrProfCtr] [varchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldPrType] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldRateType] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldDebitEDPtr] [int] NULL , [ldCreditEDPtr] [int] NULL , [ldSuppressBill] [bit] NOT NULL , [ldBillStatus] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldComment] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldBilledProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldBilledTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldBilledInvoice] [varchar] (7) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldBilledPeriod] [int] NULL , [ldXferProject] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldXferTask] [varchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldXferLaborCode] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldProjectCost] [bit] NOT NULL , [ldBillTaxCodeOverride] [varchar] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ldSpecialOvtHrs] [float] NULL , [ldSpecialOvtAmt] [float] NULL , [ldSpecialOvtPct] [float] NULL , [ldSpecialOvtRate] [float] NULL , [ldWrittenoffPeriod] [int] NULL ) ON [PRIMARY]GOExample of DML: i can't really give a good example with sample data. i hope the code with real table names is clear enough. selectLD.ldProject, LD.ldLaborCode, LD.ldDate, LD.ldRegHrs, LD.ldOvtHrs,EM.emEmployee, EM.emLastName, EM.emFirstName, EM.emJobCostRate, EM.emStatus, EM.emProfCtr, EM.emSelect1, EM.emSelect3, EM.emSelect16, EM.emSelect18, EM.emSelect20, EM.emSelect21, EM.emTerminationDate,CFGPCControl.LabelFROM{ oj (Advantage.dbo.LD LD INNER JOIN Advantage.dbo.EM EM ONLD.ldEmployee = EM.emEmployee)INNER JOIN Advantage.dbo.CFGPCControl CFGPCControl ONEM.emProfCtr = CFGPCControl.ProfCtr}WHERELD.ldDate between 09-03-2005 AND 09-10-2005 ANDEM.emStatus = 'A' ANDEM.emSelect1 = 'Salary' ANDEM.emSelect3 = 'Engineer/Scientist 1' OREM.emSelect3 = 'Engineer/Scientist 2' OREM.emSelect3 = 'Project Engin/Scien.' OREM.emSelect3 = 'Field Supervisor' OREM.emSelect3 = 'Party Chief' OREM.emSelect3 = 'Drafter' OREM.emSelect3 = 'Drafting/Graphics PM' OREM.emSelect3 = 'Technician' ANDEM.emProfCtr <> 'COCO' ANDEM.emProfCtr <> 'COOF' ANDEM.emProfCtr <> 'COPE' ANDEM.emProfCtr <> 'NOAD' ANDEM.emProfCtr <> 'NOFI' ANDEM.emProfCtr <> 'NOMK' ANDEM.emProfCtr <> 'NOHR' ANDEM.emProfCtr <> 'NOGP' ANDEM.emProfCtr <> 'NOSY' ANDEM.emProfCtr <> 'EAAD' ANDEM.emProfCtr <> 'WMAD' ANDEM.emprofCtr <> 'HOAD' ANDemtermiationdate IS NULL AND@weeklydirecthours > 45 AND@productivity > .95 I am expecting one row for each employee, or emEmployee in the sp, with productivity calculated for the week and bonus calculation inserted into a table.I have tried many different approaches to calculate and filter with these variables, i am out of ideas. i hope this form is more appropriate Brett. thanks again |
 |
|
|
|
|
|
|
|