Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SQL Stored Procedure
Message
From
26/07/2010 14:21:41
 
 
To
26/07/2010 14:19:34
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
01473624
Message ID:
01473949
Views:
28
>>>I tried your suggestion.
>>>Problem I ma having is the SP works fine in SQL 2000 but now is not in 2005
>>>
>>>Here's what I am running in SQL 2005 as parameters
>>>GO
>>>
>>>DECLARE @return_value int
>>>
>>>EXEC @return_value = [dbo].[get_invoices]
>>> @ldStartDate = '06/01/2010',
>>> @ldEndDate = '06/30/2010'
>>>
>>>SELECT 'Return Value' = @return_value
>>>
>>>GO
>>>
>>>Here is what is being returned?
>>>
>>>Msg 0, Level 11, State 0, Line 0
>>>A severe error occurred on the current command. The results, if any, should be discarded.
>>>Msg 0, Level 20, State 0, Line 0
>>>A severe error occurred on the current command. The results, if any, should be discarded.
>>>
>>>
>>>I had thisin the foxpro program but it did not run
>>>If I take out the OR in the Where and remove one of the conditions it works
>>>If I remove the other condition is works.
>>>If I have them both in the foxpro program it does not
>>>So I decided to make and SQL SP.
>>>It works fin in SQL 2000 but in 2005 it does not.
>>>
>>>I'm stumped
>>>
>>>
>>>This is the complete SP
>>>
>>>SET QUOTED_IDENTIFIER ON 
>>>GO
>>>SET ANSI_NULLS ON 
>>>GO
>>>Alter   PROCEDURE get_invoices 
>>>/*Create  PROCEDURE get_invoices*/
>>>	@ldStartDate DateTime,
>>>	@ldEndDate DateTime
>>>AS
>>>
>>>SELECT arjobhd.custno,
>>>       arjobhd.customer, 
>>>       ISNULL(ssslsman.salespn,'') as salespn,  
>>>       arjobhd.transtype,       
>>>       arjobtax.taxcode,            
>>>       IsNull(arjobhd.invno,0) as invno,  
>>>       arjob.ljob,  
>>>       bbjthead.id,  
>>>       ISNULL(SUM(arjob.price),0) as invoice,  
>>>       ISNULL(SUM(arjob.frtamt),0) as freight,  
>>>       CAST(00.00 AS decimal(10,2)) as tax,  
>>>       CAST(00.00 AS decimal(10,2)) as cost_lab,  
>>>       CAST(00.00 AS decimal(10,2)) as cost_mat,  
>>>       CAST(00.00 AS decimal(10,2)) as cost_fin,  
>>>       CAST(00.00 AS decimal(10,2)) as cost_pur,  
>>>       CAST(00.00 AS decimal(10,2)) as Totcost,  
>>>       CAST(00.00 AS decimal(10,2)) as TotInv,  
>>>       CAST(00.00 AS decimal(10,2)) as profper  
>>>       FROM arjobhd  
>>>       LEFT JOIN arjob on arjobhd.invno=arjob.invno  
>>>       LEFT JOIN arjobtax on arjobhd.invno=arjobtax.invno  
>>>       LEFT JOIN bbjthead on bbjthead.ljob=arjob.ljob  
>>>       LEFT JOIN ssslsman on arjobhd.salespnno=ssslsman.salespnno  
>>>       WHERE  
>>>       (  bbjthead.closedate  between @ldstartdate and @ldenddate 
>>>          AND arjobhd.invdate IS NOT NULL 
>>>          AND bbjthead.closedate >= arjobhd.invdate ) 
>>>       OR 
>>>       (  arjobhd.invdate between @ldstartdate and @ldenddate 
>>>          AND bbjthead.closedate IS NOT NULL 
>>>          AND invdate >= bbjthead.closedate ) 
>>>       Group by arjobhd.custno,  
>>>                arjobhd.customer, 
>>>                ssslsman.salespn,              
>>>                arjobhd.transtype,   
>>>                arjobtax.taxcode,          
>>>                arjobhd.invno, 
>>>                arjob.ljob, 
>>>                bbjthead.id 
>>>      ORDER by arjob.ljob, arjobhd.invno
>>>
>>>
>>>GO
>>>SET QUOTED_IDENTIFIER OFF 
>>>GO
>>>SET ANSI_NULLS ON 
>>>GO
>>>
>>
>>
>>From the quick glance there is nothing bad in the SP.
>>
>>1. What is your SQL Server version and do you have latest SP installed (SP3 for 2005)
>>
>>2. Did you try to probably split this query into 2 steps - step 1 - just select, no group by in CTE and step 2 - group by
>>
>>3. Did you close and re-open SSMS?
>>
>>4. Try passing dates in ISO format '20100601' '20100630'

I cut one of the OR conditions out the SP and it ran. Problem must be that SQL 2005 does not like the OR in the WHERE clause
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform