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
 Sum of 2 columns in 2 different tables

Author  Topic 

sunhuman
Starting Member

3 Posts

Posted - 2008-09-08 : 04:12:58

Please find below code.
It is not helping me get anywhere.

Fields in Red & Blue mark that these are from different tables.
I have tried using Sub Query for this purpose, but to no avail. Could someone please hint me on what shud be done to correct the code.

select JH_DT,JH_ACTUAL_END_DT,JH_JOB_NO,JH_CUST_NAME,JH_DESC_1,JH_SM_CODE,JH_FLEX_01,JH_FLEX_02,JH_FLEX_08,JH_FLEX_17,JIH_NO,TO_CHAR(JIH_CR_DT,'YYYY-MM-DD'),SUM(JII_SALE_LC_VAL_AFT_H_DISC),SUM(JED_ACT_MAT_VAL),SUM(JED_ACT_LAB_VAL) FROM

(SELECT JH_DT,JH_ACTUAL_END_DT,JH_JOB_NO,JH_CUST_NAME,JH_DESC_1,JH_SM_CODE,JH_FLEX_01,JH_FLEX_02,JH_FLEX_08,JH_FLEX_17,JIH_NO,TO_CHAR(JIH_CR_DT,'YYYY-MM-DD'),SUM(JII_SALE_LC_VAL_AFT_H_DISC),0 AS JED_ACT_MAT_VAL,0 AS JED_ACT_LAB_VAL FROM OT_JOB_HEAD,OT_JOB_INVOICE_HEAD,OT_JOB_INVOICE_DETAIL WHERE JH_CUST_NAME!='GOLTENS DUBAI INTERNAL JOBS' AND JH_ACTUAL_END_DT IS NOT NULL AND
JH_JOB_NO= JII_CHARGE_CODE AND JIH_SYS_ID=JII_JIH_SYS_ID AND EXISTS (select distinct td_tran_code,td_anly_code_1 from FT_CUR_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND
JH_JOB_NO=td_anly_code_1 union select distinct td_tran_code,td_anly_code_1 from FT_prv_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND JH_JOB_NO=td_anly_code_1 union
select distinct td_tran_code,td_anly_code_1 from FT_UNPOSTED_TRANS_DETAIL where td_tran_code='JIN' AND JH_JOB_NO=td_anly_code_1)

UNION

(select JH_DT,JH_ACTUAL_END_DT,JH_JOB_NO,JH_CUST_NAME,JH_DESC_1,JH_SM_CODE,JH_FLEX_01,JH_FLEX_02,JH_FLEX_08,JH_FLEX_17,JIH_NO,TO_CHAR(JIH_CR_DT,'YYYY-MM-DD'),0 AS JII_SALE_LC_VAL_AFT_H_DISC,SUM(JED_ACT_MAT_VAL),SUM(JED_ACT_LAB_VAL) from
OT_JOB_HEAD,OT_JOB_INVOICE_HEAD,OS_JOB_EST_DETAIL_GLT WHERE JH_CUST_NAME!='GOLTENS DUBAI INTERNAL JOBS' AND JH_ACTUAL_END_DT IS NOT NULL AND JH_JOB_NO=JED_JOB_NO AND JH_JOB_NO=JIH_JOB_NO AND
EXISTS (select distinct td_tran_code,td_anly_code_1 from FT_CUR_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND
JH_JOB_NO=td_anly_code_1 union select distinct td_tran_code,td_anly_code_1 from FT_prv_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND JH_JOB_NO=td_anly_code_1 union
select distinct td_tran_code,td_anly_code_1 from FT_UNPOSTED_TRANS_DETAIL where td_tran_code='JIN' AND JH_JOB_NO=td_anly_code_1) group by JH_DT,JH_ACTUAL_END_DT,JH_JOB_NO,JH_CUST_NAME,JH_DESC_1,JH_SM_CODE,JH_FLEX_01,JH_FLEX_02,JH_FLEX_08,JH_FLEX_17,JIH_NO,JIH_CR_DT)

sunhuman
Starting Member

3 Posts

Posted - 2008-09-08 : 05:01:53
I have modified the code slightly but still no luck



select JH_DT,JH_ACTUAL_END_DT,JH_JOB_NO,JH_CUST_NAME,JH_DESC_1,JH_SM_CODE,JH_FLEX_01,JH_FLEX_02,JH_FLEX_08,JH_FLEX_17,JIH_NO,TO_CHAR(JIH_CR_DT,'YYYY-MM-DD'),[b]SUM(JII_SALE_LC_VAL_AFT_H_DISC) AS INVOICE,SUM(JED_ACT_MAT_VAL) AS MATERIAL,SUM(JED_ACT_LAB_VAL) AS LABOR [/b]FROM

(
SELECT JH_DT,JH_ACTUAL_END_DT,JH_JOB_NO,JH_CUST_NAME,JH_DESC_1,JH_SM_CODE,JH_FLEX_01,JH_FLEX_02,JH_FLEX_08,JH_FLEX_17,JIH_NO,TO_CHAR(JIH_CR_DT,'YYYY-MM-DD'),SUM(JII_SALE_LC_VAL_AFT_H_DISC) AS INVOICE,0 AS MATERIAL,0 AS LABOR FROM OT_JOB_HEAD,OT_JOB_INVOICE_HEAD,OT_JOB_INVOICE_DETAIL,OS_JOB_EST_DETAIL_GLT WHERE JH_CUST_NAME!='GOLTENS DUBAI INTERNAL JOBS' AND JH_ACTUAL_END_DT IS NOT NULL AND
JH_JOB_NO= JII_CHARGE_CODE AND JIH_SYS_ID=JII_JIH_SYS_ID AND EXISTS (select distinct td_tran_code,td_anly_code_1 from FT_CUR_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND
JH_JOB_NO=td_anly_code_1 union select distinct td_tran_code,td_anly_code_1 from FT_prv_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND JH_JOB_NO=td_anly_code_1 union
select distinct td_tran_code,td_anly_code_1 from FT_UNPOSTED_TRANS_DETAIL where td_tran_code='JIN' AND JH_JOB_NO=td_anly_code_1)

UNION ALL

select JH_DT,JH_ACTUAL_END_DT,JH_JOB_NO,JH_CUST_NAME,JH_DESC_1,JH_SM_CODE,JH_FLEX_01,JH_FLEX_02,JH_FLEX_08,JH_FLEX_17,JIH_NO,TO_CHAR(JIH_CR_DT,'YYYY-MM-DD'),0 AS INVOICE,SUM(JED_ACT_MAT_VAL) AS MATERIAL,SUM(JED_ACT_LAB_VAL) AS LABOR from
OT_JOB_HEAD,OT_JOB_INVOICE_HEAD,OS_JOB_EST_DETAIL_GLT WHERE JH_CUST_NAME!='GOLTENS DUBAI INTERNAL JOBS' AND JH_ACTUAL_END_DT IS NOT NULL AND JH_JOB_NO=JED_JOB_NO AND JH_JOB_NO=JIH_CHARGE_CODE AND
EXISTS (select distinct td_tran_code,td_anly_code_1 from FT_CUR_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND
JH_JOB_NO=td_anly_code_1 union select distinct td_tran_code,td_anly_code_1 from FT_prv_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND JH_JOB_NO=td_anly_code_1 union
select distinct td_tran_code,td_anly_code_1 from FT_UNPOSTED_TRANS_DETAIL where td_tran_code='JIN' AND JH_JOB_NO=td_anly_code_1
)

group by JH_DT,JH_ACTUAL_END_DT,JH_JOB_NO,JH_CUST_NAME,JH_DESC_1,JH_SM_CODE,JH_FLEX_01,JH_FLEX_02,JH_FLEX_08,JH_FLEX_17,JIH_NO,JIH_CR_DT)
Go to Top of Page

jsmith8858
Dr. Cross Join

7423 Posts

Posted - 2008-09-08 : 09:48:59
Before doing anything else: format your code. Indent it, clean it up, make it readable. Right now it is just a big mess. By presenting neatly formatted code, it is easier for everyone -- you and us -- to digest what you have and to best figure out how to fix things.

use [ code ] tags here as necessary.

- Jeff
http://weblogs.sqlteam.com/JeffS
Go to Top of Page

sunhuman
Starting Member

3 Posts

Posted - 2008-09-10 : 04:47:38
I have taken ur advice and made it more structured

I get the error message:
The following error has occurred:
ORA-00904: "OT_JOB_INVOICE_HEAD"."JIH_CR_DT": invalid identifier


CREATE OR REPLACE VIEW CLOSED_INVOICED_JOBS (
JOB_OPEN_DT,JOB_CLOSED_DT,JOB_NO,CUSTOMER,JOB_DESC,CR,TR,VESSEL,CC,DEPT,INVOICE_NO,INVOICE_DT,INVOICE_VAL,MATERIAL,LABOR)

AS SELECT

JH.JH_DT JOB_OPEN_DT,
JH.JH_ACTUAL_END_DT JOB_CLOSED_DT,
JH.JH_JOB_NO JOB_NO,
JH.JH_CUST_NAME CUSTOMER,
JH.JH_DESC_1 JOB_DESC,
JH.JH_SM_CODE CR,
JH.JH_FLEX_01 TR,
JH.JH_FLEX_02 VESSEL,
JH.JH_FLEX_08 CC,
JH.JH_FLEX_17 DEPT,
JIH.JIH_NO INVOICE_NO,
JIH.JIH_CR_DT INVOICE_DT,
SUM(JII.JII_SALE_LC_VAL) INVOICE_VAL,
SUM(JED_ACT_MAT_VAL) MATERIAL,
SUM(JED_ACT_LAB_VAL) LABOR

FROM

(

SELECT

JH.JH_DT JOB_OPEN_DT,
JH.JH_ACTUAL_END_DT JOB_CLOSED_DT,
JH.JH_JOB_NO JOB_NO,
JH.JH_CUST_NAME CUSTOMER,
JH.JH_DESC_1 JOB_DESC,
JH.JH_SM_CODE CR,
JH.JH_FLEX_01 TR,
JH.JH_FLEX_02 VESSEL,
JH.JH_FLEX_08 CC,
JH.JH_FLEX_17 DEPT,
JIH.JIH_NO INVOICE_NO,
JIH.JIH_CR_DT INVOICE_DT,
SUM(JII.JII_SALE_LC_VAL) INVOICE_VAL,
NULL MATERIAL,
NULL LABOR

FROM

OT_JOB_HEAD JH,
OT_JOB_INVOICE_HEAD JIH,
OT_JOB_INVOICE_DETAIL JII

WHERE


JH.JH_CUST_NAME!='GOLTENS DUBAI INTERNAL JOBS'
AND JH.JH_ACTUAL_END_DT IS NOT NULL
AND JH.JH_JOB_NO= JII.JII_CHARGE_CODE
AND JIH.JIH_SYS_ID=JII.JII_JIH_SYS_ID
AND EXISTS
(select

distinct td_tran_code,td_anly_code_1 from FT_CUR_TRANS_DETAIL where

(td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND
JH.JH_JOB_NO=td_anly_code_1 union select distinct td_tran_code,td_anly_code_1 from

FT_prv_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND

JH.JH_JOB_NO=td_anly_code_1 union
select distinct td_tran_code,td_anly_code_1 from FT_UNPOSTED_TRANS_DETAIL where

td_tran_code='JIN' AND JH_JOB_NO=td_anly_code_1)



UNION


SELECT

JH.JH_DT JOB_OPEN_DT,
JH.JH_ACTUAL_END_DT JOB_CLOSED_DT,
JH.JH_JOB_NO JOB_NO,
JH.JH_CUST_NAME CUSTOMER,
JH.JH_DESC_1 JOB_DESC,
JH.JH_SM_CODE CR,
JH.JH_FLEX_01 TR,
JH.JH_FLEX_02 VESSEL,
JH.JH_FLEX_08 CC,
JH.JH_FLEX_17 DEPT,
JIH.JIH_NO INVOICE_NO,
JIH.JIH_CR_DT INVOICE_DT,
NULL INVOICE_VAL,
SUM(JED_ACT_MAT_VAL) MATERIAL,
SUM(JED_ACT_LAB_VAL) LABOR

FROM

OT_JOB_HEAD JH,
OT_JOB_INVOICE_HEAD JIH,
OS_JOB_EST_DETAIL_GLT JED

WHERE


JH.JH_CUST_NAME!='GOLTENS DUBAI INTERNAL JOBS'
AND JH.JH_ACTUAL_END_DT IS NOT NULL
AND JH.JH_JOB_NO=JED.JED_JOB_NO
AND JH.JH_JOB_NO= JIH.JIH_CHARGE_CODE
AND EXISTS
(select

distinct td_tran_code,td_anly_code_1 from FT_CUR_TRANS_DETAIL where

(td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND
JH.JH_JOB_NO=td_anly_code_1 union select distinct td_tran_code,td_anly_code_1 from

FT_prv_TRANS_DETAIL where (td_tran_code='JIN' OR td_doc_ref like '%JIN%') AND

JH.JH_JOB_NO=td_anly_code_1 union
select distinct td_tran_code,td_anly_code_1 from FT_UNPOSTED_TRANS_DETAIL where

td_tran_code='JIN' AND JH_JOB_NO=td_anly_code_1) )


group by
OT_JOB_HEAD.JH_DT,
OT_JOB_HEAD.JH_ACTUAL_END_DT,
OT_JOB_HEAD.JH_JOB_NO,
OT_JOB_HEAD.JH_CUST_NAME,
OT_JOB_HEAD.JH_DESC_1,
OT_JOB_HEAD.JH_SM_CODE,
OT_JOB_HEAD.JH_FLEX_01,
OT_JOB_HEAD.JH_FLEX_02,
OT_JOB_HEAD.JH_FLEX_08,
OT_JOB_HEAD.JH_FLEX_17,
OT_JOB_INVOICE_HEAD.JIH_NO,
OT_JOB_INVOICE_HEAD.JIH_CR_DT
Go to Top of Page

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2008-09-10 : 05:14:34
You should ask ORACLE questions in www.dbforums.com



E 12°55'05.63"
N 56°04'39.26"
Go to Top of Page

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2008-09-10 : 05:28:20
This is a cleaner looking version of your query.
But you should really debug it. I can spot several bugs in it.
SELECT		JH_DT AS JOB_OPEN_DT,
JH_ACTUAL_END_DT AS JOB_CLOSED_DT,
JH_JOB_NO AS JOB_NO,
JH_CUST_NAME AS CUSTOMER,
JH_DESC_1 AS JOB_DESC,
JH_SM_CODE AS CR,
JH_FLEX_01 AS TR,
JH_FLEX_02 AS VESSEL,
JH_FLEX_08 AS CC,
JH_FLEX_17 AS DEPT,
JIH_NO AS INVOICE_NO,
JIH_CR_DT AS INVOICE_DT,
SUM(JII.JII_SALE_LC_VAL) AS INVOICE_VAL,
SUM(JED_ACT_MAT_VAL) AS MATERIAL,
SUM(JED_ACT_LAB_VAL) AS LABOR
FROM (
SELECT JH.JH_DT JOB_OPEN_DT,
JH.JH_ACTUAL_END_DT JOB_CLOSED_DT,
JH.JH_JOB_NO JOB_NO,
JH.JH_CUST_NAME CUSTOMER,
JH.JH_DESC_1 JOB_DESC,
JH.JH_SM_CODE CR,
JH.JH_FLEX_01 TR,
JH.JH_FLEX_02 VESSEL,
JH.JH_FLEX_08 CC,
JH.JH_FLEX_17 DEPT,
JIH.JIH_NO INVOICE_NO,
JIH.JIH_CR_DT INVOICE_DT,
SUM(JII.JII_SALE_LC_VAL) AS INVOICE_VAL,
NULL AS MATERIAL,
NULL AS LABOR
FROM OT_JOB_HEAD AS JH
INNER JOIN OT_JOB_INVOICE_DETAIL AS JII ON JII.JII_CHARGE_CODE = JH.JH_JOB_NO
INNER JOIN OT_JOB_INVOICE_HEAD AS JIH ON JIH.JIH_SYS_ID = JII.JII_JIH_SYS_ID
WHERE JH.JH_CUST_NAME <> 'GOLTENS DUBAI INTERNAL JOBS'
AND JH.JH_ACTUAL_END_DT IS NOT NULL
AND EXISTS (
select 1
from FT_CUR_TRANS_DETAIL
where (td_tran_code = 'JIN' OR td_doc_ref like '%JIN%')
AND td_anly_code_1 = JH.JH_JOB_NO

union all

select 1
from FT_prv_TRANS_DETAIL
where (td_tran_code='JIN' OR td_doc_ref like '%JIN%')
AND td_anly_code_1 = JH.JH_JOB_NO


union all

select 1
from FT_UNPOSTED_TRANS_DETAIL
where td_tran_code = 'JIN'
AND td_anly_code_1 = JH_JOB_NO
)

UNION all

SELECT JH.JH_DT JOB_OPEN_DT,
JH.JH_ACTUAL_END_DT JOB_CLOSED_DT,
JH.JH_JOB_NO JOB_NO,
JH.JH_CUST_NAME CUSTOMER,
JH.JH_DESC_1 JOB_DESC,
JH.JH_SM_CODE CR,
JH.JH_FLEX_01 TR,
JH.JH_FLEX_02 VESSEL,
JH.JH_FLEX_08 CC,
JH.JH_FLEX_17 DEPT,
JIH.JIH_NO INVOICE_NO,
JIH.JIH_CR_DT INVOICE_DT,
NULL AS INVOICE_VAL,
JED_ACT_MAT_VAL AS MATERIAL,
JED_ACT_LAB_VAL AS LABOR
FROM OT_JOB_HEAD AS JH
INNER JOIN OT_JOB_INVOICE_HEAD AS JIH ON JIH.JIH_CHARGE_CODE = JH.JH_JOB_NO
INNER JOIN OS_JOB_EST_DETAIL_GLT AS JED ON JED.JED_JOB_NO = JH.JH_JOB_NO
WHERE JH.JH_CUST_NAME <> 'GOLTENS DUBAI INTERNAL JOBS'
AND JH.JH_ACTUAL_END_DT IS NOT NULL
AND EXISTS (
select 1
from FT_CUR_TRANS_DETAIL
where (td_tran_code = 'JIN' OR td_doc_ref like '%JIN%')
AND td_anly_code_1 = JH.JH_JOB_NO

union all

select 1
from FT_prv_TRANS_DETAIL
where (td_tran_code = 'JIN' OR td_doc_ref like '%JIN%')
AND td_anly_code_1 = JH.JH_JOB_NO

union all

select 1
from FT_UNPOSTED_TRANS_DETAIL
where td_tran_code = 'JIN'
AND td_anly_code_1 = JH_JOB_NO
)
) AS d
group by JH_DT,
JH_ACTUAL_END_DT,
JH_JOB_NO,
JH_CUST_NAME,
JH_DESC_1,
JH_SM_CODE,
JH_FLEX_01,
JH_FLEX_02,
JH_FLEX_08,
JH_FLEX_17,
JIH_NO,
JIH_CR_DT



E 12°55'05.63"
N 56°04'39.26"
Go to Top of Page
   

- Advertisement -