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
 My JOIN does not work

Author  Topic 

ishaame
Starting Member

12 Posts

Posted - 2008-05-14 : 11:19:59
I have been changing the placement of the brackets in the SELECT after the JOIN but keet getting error messages (table "RE_1" not present, error on "ON" or befor "LEFT"). Here is the command:

SELECT TR_1.*, RE_1.*
FROM
(SELECT TR_1.ACCOUNT, TR_1.ACTIVITY,TR_1.DONOR,TR_1.COSTCENTER,SUM(CASE WHEN TR_1.TTYPE = 'U' THEN TR_1.AmountLCU*-1 ELSE 0 END) AS Budget,SUM(CASE WHEN TR_1.TTYPE <> 'U' THEN TR_1.AmountLCU*-1 ELSE 0 END) AS Actual,TR_1.TransactionDate TR_1 Date, YEAR(TR_1.TransactionDate) TR_1 Year
FROM scalaDB.dbo.A_GL0601_PREVIOUS AS TR_1
WHERE NOT (TR_1.TTYPE='\' OR TR_1.TTYPE='a' OR TR_1.TTYPE='c') AND NOT (TR_1.COSTCENTER=N'' OR TR_1.COSTCENTER=N'0000') AND ((TR_1.ACCOUNT>=N'26' AND TR_1.ACCOUNT<N'7100') OR (TR_1.ACCOUNT>N'7100' AND TR_1.ACCOUNT<=N'7999'))
GROUP BY TR_1.COSTCENTER,TR_1.ACCOUNT,TR_1.ACTIVITY,TR_1.DONOR,TR_1.TransactionDate) LEFT OUTER JOIN
((SELECT RE_1.ACT RE-ACT,RE_1.DONOR RE-DONOR,RE_1.CC RE-CC,YEAR(RE_1.DTE) RE-1 Year,RE_1.SYMBOL,RE_1.DTE,RE_1.SPLIT_AMOUNT AS RE Split in CHF,RE_1.FOREIGN_AMOUNT AS RE Foreign Amnt FROM scalaDB.dbo.RE_Donor_Gift) RE_1)
ON
TR_1.COSTCENTER=RE_1.CC AND TR_1.DONOR=RE_1.DONOR AND TR_1.ACTIVITY=RE_1.ACT AND TR_1 Year=RE-1 Year

Thanks in advance
ishaame

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-05-14 : 11:28:19
Change like this & try:-
SELECT TR_1.*, RE_1.*
FROM
(SELECT TR_1.ACCOUNT, TR_1.ACTIVITY,TR_1.DONOR,TR_1.COSTCENTER,
SUM(CASE WHEN TR_1.TTYPE = 'U' THEN TR_1.AmountLCU*-1 ELSE 0 END) AS Budget,
SUM(CASE WHEN TR_1.TTYPE <> 'U' THEN TR_1.AmountLCU*-1 ELSE 0 END) AS Actual,
TR_1.TransactionDate [TR_1 Date],
YEAR(TR_1.TransactionDate) [TR_1 Year]
FROM scalaDB.dbo.A_GL0601_PREVIOUS AS TR_1
WHERE NOT (TR_1.TTYPE='\' OR TR_1.TTYPE='a' OR TR_1.TTYPE='c')
AND NOT (TR_1.COSTCENTER=N'' OR TR_1.COSTCENTER=N'0000') AND ((TR_1.ACCOUNT>=N'26' AND TR_1.ACCOUNT<N'7100') OR (TR_1.ACCOUNT>N'7100' AND TR_1.ACCOUNT<=N'7999'))
GROUP BY TR_1.COSTCENTER,TR_1.ACCOUNT,TR_1.ACTIVITY,TR_1.DONOR,TR_1.TransactionDate)tmp LEFT OUTER JOIN
(SELECT RE_1.ACT [RE-ACT],RE_1.DONOR [RE-DONOR],RE_1.CC RE-CC,YEAR(RE_1.DTE) [RE-1 Year],RE_1.SYMBOL,RE_1.DTE,RE_1.SPLIT_AMOUNT AS [RE Split in CHF],RE_1.FOREIGN_AMOUNT AS [RE Foreign Amnt] FROM scalaDB.dbo.RE_Donor_Gift) RE_1
ON
tmp.COSTCENTER=RE_1.CC AND tmp.DONOR=RE_1.DONOR AND tmp.ACTIVITY=RE_1.ACT AND [TR_1 Year]=[RE-1 Year]
Go to Top of Page

ishaame
Starting Member

12 Posts

Posted - 2008-05-14 : 11:46:39
Does not work: Line 7, incorrect syntax near ')'
Go to Top of Page

ishaame
Starting Member

12 Posts

Posted - 2008-05-14 : 11:47:54
does not work: line 7: incorrect syntax near ')'
Go to Top of Page

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2008-05-14 : 11:53:39
[code]SELECT TR.*,
RE.*
FROM (
SELECT ACCOUNT,
ACTIVITY,
DONOR,
COSTCENTER,
SUM(CASE WHEN TTYPE = 'U' THEN -AmountLCU ELSE 0 END) AS Budget,
SUM(CASE WHEN TTYPE <> 'U' THEN -AmountLCU ELSE 0 END) AS Actual,
TRANSACTIONDATE AS [TR_1 Date],
YEAR(TRANSACTIONDATE) AS [TR_1 Year]
FROM ScalaDB.dbo.A_GL0601_PREVIOUS
WHERE TTYPE NOT IN ('\', 'a', 'c')
AND COSTCENTER NOT IN ('', '0000')
AND ACCOUNT >= '26'
AND ACCOUNT <= '7999'
AND ACCOUNT <> '7100'
GROUP BY COSTCENTER,
ACCOUNT,
ACTIVITY,
DONOR,
TRANSACTIONDATE
) AS TR
LEFT JOIN (
SELECT ACT AS [RE-ACT],
DONOR AS [RE-DONOR],
CC AS [RE-CC],
YEAR(RE_1.DTE) AS [RE-1 Year],
SYMBOL,
DTE,
SPLIT_AMOUNT AS [RE Split in CHF],
FOREIGN_AMOUNT AS [RE Foreign Amnt]
FROM scalaDB.dbo.RE_Donor_Gift
) AS RE ON RE.CC = TR.COSTCENTER
AND RE.DONOR = TR.DONOR
AND RE.ACT = TR.ACTIVITY
AND RE.[RE-1 Year] = TR.[TR_1 Year][/code]


E 12°55'05.25"
N 56°04'39.16"
Go to Top of Page

ishaame
Starting Member

12 Posts

Posted - 2008-05-14 : 12:17:34
Sorry Peso, but I get the similar error message: RE does not match with table name or alias name used in the query
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-05-14 : 12:27:46
quote:
Originally posted by ishaame

Sorry Peso, but I get the similar error message: RE does not match with table name or alias name used in the query


Can you post your full query used?
Go to Top of Page

ishaame
Starting Member

12 Posts

Posted - 2008-05-15 : 02:55:13
quote:
Originally posted by visakh16

quote:
Originally posted by ishaame

Sorry Peso, but I get the similar error message: RE does not match with table name or alias name used in the query


Can you post your full query used?



What I posted is the full query
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-05-15 : 03:42:15
quote:
Originally posted by ishaame

quote:
Originally posted by visakh16

quote:
Originally posted by ishaame

Sorry Peso, but I get the similar error message: RE does not match with table name or alias name used in the query


Can you post your full query used?



What I posted is the full query



change like this & try


SELECT		TR.*,
RE.*
FROM (
SELECT ACCOUNT,
ACTIVITY,
DONOR,
COSTCENTER,
SUM(CASE WHEN TTYPE = 'U' THEN -AmountLCU ELSE 0 END) AS Budget,
SUM(CASE WHEN TTYPE <> 'U' THEN -AmountLCU ELSE 0 END) AS Actual,
TRANSACTIONDATE AS [TR_1 Date],
YEAR(TRANSACTIONDATE) AS [TR_1 Year]
FROM ScalaDB.dbo.A_GL0601_PREVIOUS
WHERE TTYPE NOT IN ('\', 'a', 'c')
AND COSTCENTER NOT IN ('', '0000')
AND ACCOUNT >= '26'
AND ACCOUNT <= '7999'
AND ACCOUNT <> '7100'
GROUP BY COSTCENTER,
ACCOUNT,
ACTIVITY,
DONOR,
TRANSACTIONDATE
) AS TR
LEFT JOIN (
SELECT ACT AS [RE-ACT],
DONOR AS [RE-DONOR],
CC AS [RE-CC],
YEAR(RE_1.DTE) AS [RE-1 Year],
SYMBOL,
DTE,
SPLIT_AMOUNT AS [RE Split in CHF],
FOREIGN_AMOUNT AS [RE Foreign Amnt]
FROM scalaDB.dbo.RE_Donor_Gift
) AS RE ON RE.[RE-CC]= TR.COSTCENTER
AND RE.DONOR = TR.DONOR
AND RE.[RE-ACT] = TR.ACTIVITY
AND RE.[RE-1 Year] = TR.[TR_1 Year]
Go to Top of Page

ishaame
Starting Member

12 Posts

Posted - 2008-05-15 : 04:28:14
Hello everybody,
My query works now. The problem was that it did not like to refer table alias before the alias was defined. For example
SELECT TR.*
FROM (SELECT
TR.DONOR
FROM GL06_PREVIOUS
) AS TR
would not work,
but

SELECT TR.*
FROM (SELECT
DONOR
FROM GL06_PREVIOUS
) AS TR

Thanks everybody for the help.
IShaame
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-05-15 : 07:43:32
quote:
Originally posted by ishaame

Hello everybody,
My query works now. The problem was that it did not like to refer table alias before the alias was defined. For example
SELECT TR.*
FROM (SELECT
TR.DONOR
FROM GL06_PREVIOUS
) AS TR
would not work,
but

SELECT TR.*
FROM (SELECT
DONOR
FROM GL06_PREVIOUS
) AS TR

Thanks everybody for the help.
IShaame



I dont think Peso used any aliases in inner query. So you were trying a different query?
Go to Top of Page
   

- Advertisement -