| 
	
 | 
 Posted by wilhelm.kleu on 06/22/06 16:41 
Hello 
 
Let me explain the problem I am having: 
I have two tables, data_t and a_data_t 
a_data_t is the archive table of data_t 
 
The two tables are exactly the same. 
 
In the table values are stored: 
Value (A numeric value) 
Code (A text code to identify a report with data) 
Line (The line number) 
Col (The Col Number) 
EDate (The date of entry) 
Grp (A number of a group the data belongs to) 
 
I want to get the value from data_t minus the value from a_data_t with 
the same Code, Line and Col but with a different EDate (To view the 
variance). 
 
Here is my statement: 
 
select d1.line, d1.col, (IsNull(d1.value,0) - IsNull(d2.value,0)) as 
value from data_t d1 
full outer join a_data_t d2 on d1.Code = d2.Code and d2.line = d2.line 
and d1.col = d2.col 
where 
d1.Code = 'XC001' and d1.line between 1 and 20 and d1.grp = 26 
and d1.EDate = '2006/06' and d2.grp = 26 and d2.EDate = '2006/05' 
order by d1.line, d1.col 
 
It works fine EXCEPT when there is a value in either of the tables that 
isn't in the other one, then a value is not given. 
 
Example: 
data_t doens't have a value for line=1 and col=2 and grp=26 and Code = 
'XC001' and EDate = '2006/06' 
a_data_t has the value of 50000 for the same details (Except Edate of 
'2006/5') 
Instead of returning -50000 it doesn't return anything. 
 
I hope I could explain it correctly. 
Any help will be greatly appreciated. 
 
Thanks.
 
  
Navigation:
[Reply to this message] 
 |