SQL Using two queries with JOIN - sql

I am fairly new to SQL. I was trying to use two queries and join them together to get the result I want:
select
A.[Article:Link]
,A.[ArtNo]
,A.[GenericArticle:Link]
,A.[Vehicle:Link]
,A.[LinkingTargetNo]
,Q1.[Name]
FROM [HellaPim].[dbo].[TecDoc.ArticleLinkage.Linkages] A WITH (NOLOCK)
LEFT OUTER JOIN
(SELECT
base.[TecDocNo],
base.[VehicleType],
base.[TypeNo],
T3.[Manufacturer:Link],
T24.[Name],
T1.[Designation],
T1.[LongDesignation],
T2.[DescriptionNo],
base.[Model:Link],
T4.[Designation],
base.[SortNo],
base.[ConstructionYearFrom],
base.[ConstructionYearTo],
base.[KW],
base.[PS],
base.[CcmTaxation],
base.[CcmTechnical],
base.[CapacityLitres],
base.[NumCylinders],
base.[NumDoors],
base.[FuelTankCapacity],
base.[MainVoltage],
base.[ABS],
base.[ASR],
base.[EngineType:Link],
T6.[Description <4>],
base.[FuelMixtureFormation:Link],
T8.[Description <4>],
base.[DriveType:Link],
T10.[Description <4>],
base.[BrakeType:Link],
T12.[Description <4>],
base.[BrakeSystem:Link],
T14.[Description <4>],
base.[NumValves],
base.[FuelType:Link],
T16.[Description <4>],
base.[CatalystConverterType:Link],
T18.[Description <4>],
base.[TransmissionType:Link],
T20.[Description <4>],
base.[BodyType:Link],
T22.[Description <4>]
FROM [HellaPim].[dbo].[TecDoc.LinkingTargets.Types] base WITH (NOLOCK)
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Models] T3 WITH (NOLOCK)
ON T3.[ModelNo] = [base].[Model:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.Manufacturers] T23 WITH (NOLOCK)
ON T23.[ManufacturerNo] = [T3].[Manufacturer:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.Manufacturers <TecDoc.GeneralData.Countries>] T24 WITH (NOLOCK)
ON T24.[:Id] = [T23].[:Id]
AND T24.[:TecDoc.GeneralData.Countries_Id] = 'A98E18B0-1401-4104-9EF9-827497E6407F'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Types <TecDoc.GeneralData.Countries>] T1 WITH (NOLOCK)
ON T1.[:Id] = [base].[:Id]
AND T1.[:TecDoc.GeneralData.Countries_Id] = 'D3ECF38D-A5D3-4A46-BED1-24853E25DFC8'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.CouLngDescriptions] T2 WITH (NOLOCK)
ON T2.[DescriptionNo] = [base].[Description:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Models <TecDoc.GeneralData.Countries>] T4 WITH (NOLOCK)
ON T4.[:Id] = [T3].[:Id]
AND T4.[:TecDoc.GeneralData.Countries_Id] = 'D3ECF38D-A5D3-4A46-BED1-24853E25DFC8'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T5 WITH (NOLOCK)
ON T5.[KeyValueNo] = [base].[EngineType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T6 WITH (NOLOCK)
ON T6.[DescriptionNo] = [T5].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T7 WITH (NOLOCK)
ON T7.[KeyValueNo] = [base].[FuelMixtureFormation:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T8 WITH (NOLOCK)
ON T8.[DescriptionNo] = [T7].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T9 WITH (NOLOCK)
ON T9.[KeyValueNo] = [base].[DriveType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T10 WITH (NOLOCK)
ON T10.[DescriptionNo] = [T9].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T11 WITH (NOLOCK)
ON T11.[KeyValueNo] = [base].[BrakeType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T12 WITH (NOLOCK)
ON T12.[DescriptionNo] = [T11].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T13 WITH (NOLOCK)
ON T13.[KeyValueNo] = [base].[BrakeSystem:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T14 WITH (NOLOCK)
ON T14.[DescriptionNo] = [T13].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T15 WITH (NOLOCK)
ON T15.[KeyValueNo] = [base].[FuelType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T16 WITH (NOLOCK)
ON T16.[DescriptionNo] = [T15].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T17 WITH (NOLOCK)
ON T17.[KeyValueNo] = [base].[CatalystConverterType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T18 WITH (NOLOCK)
ON T18.[DescriptionNo] = [T17].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T19 WITH (NOLOCK)
ON T19.[KeyValueNo] = [base].[TransmissionType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T20 WITH (NOLOCK)
ON T20.[DescriptionNo] = [T19].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T21 WITH (NOLOCK)
ON T21.[KeyValueNo] = [base].[BodyType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T22 WITH (NOLOCK)
ON T22.[DescriptionNo] = [T21].[Name:Link]
) as Q1 on A.[LinkingTargetNo] = Q1.[TypeNo]
My error is
Msg 8156, Level 16, State 1, Line 107
The column 'Designation' was specified multiple times for 'Q1'.
The two queries individual work perfectly fine. The problem is when I join them together. As you can see I pipe in [Designation] two times but once from T1 and once from T4.
What am I missing?

use alias for designation
select
A.[Article:Link]
,A.[ArtNo]
,A.[GenericArticle:Link]
,A.[Vehicle:Link]
,A.[LinkingTargetNo]
,Q1.[Name]
FROM [HellaPim].[dbo].[TecDoc.ArticleLinkage.Linkages] A WITH (NOLOCK)
LEFT OUTER JOIN
(SELECT
base.[TecDocNo],
base.[VehicleType],
base.[TypeNo],
T3.[Manufacturer:Link],
T24.[Name],
T1.[Designation] as DesignationT1 ,
T1.[LongDesignation],
T2.[DescriptionNo],
base.[Model:Link],
T4.[Designation],
base.[SortNo],
base.[ConstructionYearFrom],
base.[ConstructionYearTo],
base.[KW],
base.[PS],
base.[CcmTaxation],
base.[CcmTechnical],
base.[CapacityLitres],
base.[NumCylinders],
base.[NumDoors],
base.[FuelTankCapacity],
base.[MainVoltage],
base.[ABS],
base.[ASR],
base.[EngineType:Link],
T6.[Description <4>],
base.[FuelMixtureFormation:Link],
T8.[Description <4>],
base.[DriveType:Link],
T10.[Description <4>],
base.[BrakeType:Link],
T12.[Description <4>],
base.[BrakeSystem:Link],
T14.[Description <4>],
base.[NumValves],
base.[FuelType:Link],
T16.[Description <4>],
base.[CatalystConverterType:Link],
T18.[Description <4>],
base.[TransmissionType:Link],
T20.[Description <4>],
base.[BodyType:Link],
T22.[Description <4>]
FROM [HellaPim].[dbo].[TecDoc.LinkingTargets.Types] base WITH (NOLOCK)
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Models] T3 WITH (NOLOCK)
ON T3.[ModelNo] = [base].[Model:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.Manufacturers] T23 WITH (NOLOCK)
ON T23.[ManufacturerNo] = [T3].[Manufacturer:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.Manufacturers <TecDoc.GeneralData.Countries>] T24 WITH (NOLOCK)
ON T24.[:Id] = [T23].[:Id]
AND T24.[:TecDoc.GeneralData.Countries_Id] = 'A98E18B0-1401-4104-9EF9-827497E6407F'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Types <TecDoc.GeneralData.Countries>] T1 WITH (NOLOCK)
ON T1.[:Id] = [base].[:Id]
AND T1.[:TecDoc.GeneralData.Countries_Id] = 'D3ECF38D-A5D3-4A46-BED1-24853E25DFC8'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.CouLngDescriptions] T2 WITH (NOLOCK)
ON T2.[DescriptionNo] = [base].[Description:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Models <TecDoc.GeneralData.Countries>] T4 WITH (NOLOCK)
ON T4.[:Id] = [T3].[:Id]
AND T4.[:TecDoc.GeneralData.Countries_Id] = 'D3ECF38D-A5D3-4A46-BED1-24853E25DFC8'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T5 WITH (NOLOCK)
ON T5.[KeyValueNo] = [base].[EngineType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T6 WITH (NOLOCK)
ON T6.[DescriptionNo] = [T5].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T7 WITH (NOLOCK)
ON T7.[KeyValueNo] = [base].[FuelMixtureFormation:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T8 WITH (NOLOCK)
ON T8.[DescriptionNo] = [T7].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T9 WITH (NOLOCK)
ON T9.[KeyValueNo] = [base].[DriveType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T10 WITH (NOLOCK)
ON T10.[DescriptionNo] = [T9].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T11 WITH (NOLOCK)
ON T11.[KeyValueNo] = [base].[BrakeType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T12 WITH (NOLOCK)
ON T12.[DescriptionNo] = [T11].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T13 WITH (NOLOCK)
ON T13.[KeyValueNo] = [base].[BrakeSystem:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T14 WITH (NOLOCK)
ON T14.[DescriptionNo] = [T13].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T15 WITH (NOLOCK)
ON T15.[KeyValueNo] = [base].[FuelType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T16 WITH (NOLOCK)
ON T16.[DescriptionNo] = [T15].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T17 WITH (NOLOCK)
ON T17.[KeyValueNo] = [base].[CatalystConverterType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T18 WITH (NOLOCK)
ON T18.[DescriptionNo] = [T17].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T19 WITH (NOLOCK)
ON T19.[KeyValueNo] = [base].[TransmissionType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T20 WITH (NOLOCK)
ON T20.[DescriptionNo] = [T19].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T21 WITH (NOLOCK)
ON T21.[KeyValueNo] = [base].[BodyType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T22 WITH (NOLOCK)
ON T22.[DescriptionNo] = [T21].[Name:Link]
) as Q1 on A.[LinkingTargetNo] = Q1.[TypeNo]

You can try below - you've two designation column one is T1.[Designation] and another one is T4.[Designation] - one have to be renamed
select
A.[Article:Link]
,A.[ArtNo]
,A.[GenericArticle:Link]
,A.[Vehicle:Link]
,A.[LinkingTargetNo]
,Q1.[Name]
FROM [HellaPim].[dbo].[TecDoc.ArticleLinkage.Linkages] A WITH (NOLOCK)
LEFT OUTER JOIN
(SELECT
base.[TecDocNo],
base.[VehicleType],
base.[TypeNo],
T3.[Manufacturer:Link],
T24.[Name],
T1.[Designation] as designation1,
T1.[LongDesignation],
T2.[DescriptionNo],
base.[Model:Link],
T4.[Designation],
base.[SortNo],
base.[ConstructionYearFrom],
base.[ConstructionYearTo],
base.[KW],
base.[PS],
base.[CcmTaxation],
base.[CcmTechnical],
base.[CapacityLitres],
base.[NumCylinders],
base.[NumDoors],
base.[FuelTankCapacity],
base.[MainVoltage],
base.[ABS],
base.[ASR],
base.[EngineType:Link],
T6.[Description <4>],
base.[FuelMixtureFormation:Link],
T8.[Description <4>],
base.[DriveType:Link],
T10.[Description <4>],
base.[BrakeType:Link],
T12.[Description <4>],
base.[BrakeSystem:Link],
T14.[Description <4>],
base.[NumValves],
base.[FuelType:Link],
T16.[Description <4>],
base.[CatalystConverterType:Link],
T18.[Description <4>],
base.[TransmissionType:Link],
T20.[Description <4>],
base.[BodyType:Link],
T22.[Description <4>]
FROM [HellaPim].[dbo].[TecDoc.LinkingTargets.Types] base WITH (NOLOCK)
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Models] T3 WITH (NOLOCK)
ON T3.[ModelNo] = [base].[Model:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.Manufacturers] T23 WITH (NOLOCK)
ON T23.[ManufacturerNo] = [T3].[Manufacturer:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.Manufacturers <TecDoc.GeneralData.Countries>] T24 WITH (NOLOCK)
ON T24.[:Id] = [T23].[:Id]
AND T24.[:TecDoc.GeneralData.Countries_Id] = 'A98E18B0-1401-4104-9EF9-827497E6407F'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Types <TecDoc.GeneralData.Countries>] T1 WITH (NOLOCK)
ON T1.[:Id] = [base].[:Id]
AND T1.[:TecDoc.GeneralData.Countries_Id] = 'D3ECF38D-A5D3-4A46-BED1-24853E25DFC8'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.CouLngDescriptions] T2 WITH (NOLOCK)
ON T2.[DescriptionNo] = [base].[Description:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.LinkingTargets.Models <TecDoc.GeneralData.Countries>] T4 WITH (NOLOCK)
ON T4.[:Id] = [T3].[:Id]
AND T4.[:TecDoc.GeneralData.Countries_Id] = 'D3ECF38D-A5D3-4A46-BED1-24853E25DFC8'
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T5 WITH (NOLOCK)
ON T5.[KeyValueNo] = [base].[EngineType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T6 WITH (NOLOCK)
ON T6.[DescriptionNo] = [T5].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T7 WITH (NOLOCK)
ON T7.[KeyValueNo] = [base].[FuelMixtureFormation:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T8 WITH (NOLOCK)
ON T8.[DescriptionNo] = [T7].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T9 WITH (NOLOCK)
ON T9.[KeyValueNo] = [base].[DriveType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T10 WITH (NOLOCK)
ON T10.[DescriptionNo] = [T9].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T11 WITH (NOLOCK)
ON T11.[KeyValueNo] = [base].[BrakeType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T12 WITH (NOLOCK)
ON T12.[DescriptionNo] = [T11].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T13 WITH (NOLOCK)
ON T13.[KeyValueNo] = [base].[BrakeSystem:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T14 WITH (NOLOCK)
ON T14.[DescriptionNo] = [T13].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T15 WITH (NOLOCK)
ON T15.[KeyValueNo] = [base].[FuelType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T16 WITH (NOLOCK)
ON T16.[DescriptionNo] = [T15].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T17 WITH (NOLOCK)
ON T17.[KeyValueNo] = [base].[CatalystConverterType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T18 WITH (NOLOCK)
ON T18.[DescriptionNo] = [T17].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T19 WITH (NOLOCK)
ON T19.[KeyValueNo] = [base].[TransmissionType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T20 WITH (NOLOCK)
ON T20.[DescriptionNo] = [T19].[Name:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.KeyValues] T21 WITH (NOLOCK)
ON T21.[KeyValueNo] = [base].[BodyType:Link]
LEFT OUTER JOIN [HellaPim].[dbo].[TecDoc.GeneralData.LngDescriptions] T22 WITH (NOLOCK)
ON T22.[DescriptionNo] = [T21].[Name:Link]
) as Q1 on A.[LinkingTargetNo] = Q1.[TypeNo]

Your SELECT query has T1.Designate and T4.Designate and that might be the problem. Maybe try adding an alias to one of them, eg. T4.Designate AS Designate4.

Please set aliases for every duplicate column in the list
like this
T4.[Designation] As T4Designation,
T6.[Description <4>] As T6Description,
and so on.

Related

How to link Purchase Order and AP Invoice?

I'm trying to write a query that returns AP Invoice number(s) by keying a Purchase Order number in SAP B1.
PO --> Goods Receipt --> AP Invoice
SELECT DISTINCT
T0.DocNum AS PO,
T4.DocNum AS 'AP Inv'
FROM OPOR T0
LEFT OUTER JOIN PDN1 T1 ON T0.DocEntry = T1.BaseEntry
LEFT OUTER JOIN OPDN T2 ON T1.DocEntry = T2.DocEntry
LEFT OUTER JOIN PCH1 T3 ON T2.DocEntry = T3.BaseEntry
AND T1.LineNum = T3.BaseLine
AND T1.ItemCode = T3.ItemCode
LEFT OUTER JOIN OPCH T4 ON T3.DocEntry = T4.DocEntry
WHERE T0.DocNum = '[%0]'
PO --> Reserved AP Invoice --> Goods Receipt
SELECT DISTINCT
T2.DocNum AS PO,
T0.DocNum AS 'AP Inv'
FROM OPCH T0
INNER JOIN PCH1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN OPOR T2 ON T2.DocEntry = T1.BaseEntry
WHERE T1.BaseType = '22'
AND T2.DocNum = '[%0]'
Is there a way to get AP Invoice number(s) in a query?

How to use distincted select result values ​as where clause?

Here is the #1 code.
select distinct t5.SUBJECTSEQ, t1.teamname
from tblteam t1
inner join TBLCLASS t2 on t1.CLASSSEQ = t2.CLASSSEQ
inner join TBLOPENCOURSE T on T.OPENCOURSESEQ = t2.OPENCOURSESEQ
inner join TBLOPENSUBJECT T3 on T.OPENCOURSESEQ = T3.OPENCOURSESEQ
inner join TBLAVAILABLESUBJECT T4 on T4.AVAILABLESUBJECTSEQ = T3.AVAILABLESUBJECTSEQ
inner join TBLSUBJECT T5 on T5.SUBJECTSEQ = T4.SUBJECTSEQ
This results in 25 non-duplicate values(row).
and, I'm going to use the result of #1 to use a subquery.
So I wrote the following code.
select t5.SUBJECTNAME, t3.SUBJECTEND, t1.TEAMSEQ
from tblteam t1
inner join TBLCLASS t2 on t1.CLASSSEQ = t2.CLASSSEQ
inner join TBLOPENCOURSE T on T.OPENCOURSESEQ = t2.OPENCOURSESEQ
inner join TBLOPENSUBJECT T3 on T.OPENCOURSESEQ = T3.OPENCOURSESEQ
inner join TBLAVAILABLESUBJECT T4 on T4.AVAILABLESUBJECTSEQ = T3.AVAILABLESUBJECTSEQ
inner join TBLSUBJECT T5 on T5.SUBJECTSEQ = T4.SUBJECTSEQ
where (t5.SUBJECTSEQ, t1.teamname) in (select distinct t5.SUBJECTSEQ, t1.TEAMNAME
from tblteam t1
inner join TBLCLASS t2 on t1.CLASSSEQ = t2.CLASSSEQ
inner join TBLOPENCOURSE T on T.OPENCOURSESEQ = t2.OPENCOURSESEQ
inner join TBLOPENSUBJECT T3 on T.OPENCOURSESEQ = T3.OPENCOURSESEQ
inner join TBLAVAILABLESUBJECT T4 on T4.AVAILABLESUBJECTSEQ = T3.AVAILABLESUBJECTSEQ
inner join TBLSUBJECT T5 on T5.SUBJECTSEQ = T4.SUBJECTSEQ);
But this result returns 150 rows.
First, duplicate values ​​came out by using in in the where clause,
I think that there is a duplicate value again because the distinct clause is gone in mainquery.
I'm curious about an approach that can solve this problem.
best regards
edit
select t5.SUBJECTSEQ, t1.TEAMNAME
from tblteam t1
inner join TBLCLASS t2 on t1.CLASSSEQ = t2.CLASSSEQ
inner join TBLOPENCOURSE T on T.OPENCOURSESEQ = t2.OPENCOURSESEQ
inner join TBLOPENSUBJECT T3 on T.OPENCOURSESEQ = T3.OPENCOURSESEQ
inner join TBLAVAILABLESUBJECT T4 on T4.AVAILABLESUBJECTSEQ = T3.AVAILABLESUBJECTSEQ
inner join (
select distinct subjectseq, teamname from TBLSUBJECT, tblteam) t5 on T5.SUBJECTSEQ = t4.SUBJECTSEQ;
this code give 750 row...

How to replace an OR statement from a join in sql server

I have the following query that uses an or statement on a join, so basically if one condition on the join isn't met it must check the next condition. The problem is that with the OR statement it takes really long to run but when I remove one of the OR conditions it runs instantly. is there a better way to do this with both conditions without using the OR statement so it would speed up the query
select t5.TransactionNumber
,t4.ID
,t3.[Entry] AS Amount
,t2.Address AS AddressDetail
,t1.PhoneNumber AS ContactNumber
FROM Table1 t1 (NOLOCK)
JOIN Table2 t2 (NOLOCK) ON t2.FicaID = t1.FicaId
inner join Table3 t3 (NOLOCK) ON (t3.ID = t2.ID AND t3.Code = t2.Code) or (t3.TypeID = t2.TypeID) //on this join i have an or statement if one condition isnt met it must check the next condition
LEFT JOIN Table4 t4 (NOLOCK) ON t4.Result = t3.Result
LEFT JOIN Table5 t5 (NOLOCK) ON t5.AccNum = t3.AccNum
where t1.date>'2018-09-01' and t1.date<'2018-09-30'
By the rule of distributivity in logic,
P OR (Q AND R) can be written as
(P OR Q) AND (P OR R).. maybe that helps?
You could try by using left join and COALESCE function
select t5.TransactionNumber
,t4.ID
,COALESCE(t3.[Entry],t33.[Entry]) AS Amount
,t2.Address AS AddressDetail
,t1.PhoneNumber AS ContactNumber
FROM Table1 t1 (NOLOCK)
JOIN Table2 t2 (NOLOCK) ON t2.FicaID = t1.FicaId
left join Table3 t3 (NOLOCK) ON (t3.ID = t2.ID AND t3.Code = t2.Code)
left join Table3 t33 (t33.TypeID = t2.TypeID) //I moved it to left join
LEFT JOIN Table4 t4 (NOLOCK) ON t4.Result = t3.Result
LEFT JOIN Table5 t5 (NOLOCK) ON t5.AccNum = t3.AccNum
where t1.date>'2018-09-01' and t1.date<'2018-09-30'
You can try below query :
select * from
(
select t5.TransactionNumber
,t4.ID
,t3.[Entry] AS Amount
,t2.Address AS AddressDetail
,t1.PhoneNumber AS ContactNumber
FROM Table1 t1 (NOLOCK)
JOIN Table2 t2 (NOLOCK) ON t2.FicaID = t1.FicaId
inner join Table3 t3 (NOLOCK) ON (t3.ID = t2.ID AND t3.Code = t2.Code)
)A
join Table3 t3 (NOLOCK) ON (A.TypeID = t3.TypeID)
LEFT JOIN Table4 t4 (NOLOCK) ON t4.Result = t3.Result
LEFT JOIN Table5 t5 (NOLOCK) ON t5.AccNum = t3.AccNum
where t1.date>'2018-09-01' and t1.date<'2018-09-30'

Cumulative total based off of two columns

So I am looking to get an extra column into my query that calculates a cumulative balance based off of the credit/debit columns.
My query looks like this so far:
SELECT T1.[RefDate], T1.[TransId], T1.[BaseRef], T1.[LineMemo], T3.[Dscription], T1.[Debit], T1.[Credit], T4.[AcctName]
FROM OJDT T0
right JOIN JDT1 T1 ON T0.TransId = T1.TransId
left JOIN OPCH T2 ON T0.TransId = T2.TransId
left JOIN PCH1 T3 ON T3.DocEntry = T2.DocEntry
left JOIN OACT T4 ON T1.Account = T4.AcctCode
WHERE T4.[AcctCode] = [%0] AND
T1.[RefDate] BETWEEN [%1] AND [%2]
You could use windowed SUM:
SELECT T1.[RefDate], T1.[TransId], T1.[BaseRef], T1.[LineMemo], T3.[Dscription],
T1.[Debit], T1.[Credit], T4.[AcctName],
SUM(ISNULL(Debit,0)+ISNULL(Credit,0)) OVER(PARTITION BY ... ORDER BY refDate)
FROM OJDT T0
right JOIN JDT1 T1 ON T0.TransId = T1.TransId
left JOIN OPCH T2 ON T0.TransId = T2.TransId
left JOIN PCH1 T3 ON T3.DocEntry = T2.DocEntry
left JOIN OACT T4 ON T1.Account = T4.AcctCode
WHERE T4.[AcctCode] = [%0] AND
T1.[RefDate] BETWEEN [%1] AND [%2];
If Debit column contains positive values you need to prefix it with -.
Documentation around OVER: https://msdn.microsoft.com/en-us/library/ms189461(v=SQL.110).aspx
You'll probably find example C to be the most useful though it looks like you don't want to PARTITION, you want to use RANGE.
you'll want something like this for your calculated column:
SUM(ISNULL(Debit,0)+ISNULL(Credit,0))
OVER(RANGE UNBOUNDED PRECEDING AND CURRENT ROW) AS RunningTotal
This will result in a query something like:
SELECT T1.[RefDate], T1.[TransId], T1.[BaseRef], T1.[LineMemo], T3.[Dscription], T1.[Debit], T1.[Credit], T4.[AcctName],
SUM(ISNULL(Debit,0)+ISNULL(Credit,0))
OVER(RANGE UNBOUNDED PRECEDING AND CURRENT ROW) AS RunningTotal
FROM OJDT T0
right JOIN JDT1 T1 ON T0.TransId = T1.TransId
left JOIN OPCH T2 ON T0.TransId = T2.TransId
left JOIN PCH1 T3 ON T3.DocEntry = T2.DocEntry
left JOIN OACT T4 ON T1.Account = T4.AcctCode
WHERE T4.[AcctCode] = [%0] AND
T1.[RefDate] BETWEEN [%1] AND [%2]

How to Use Left join in multiple Tables

I need all my records from T3 Table in below query.
how can I use left join statement to solve my problem in oracle.
SELECT COUNT(*)
FROM R
LEFT JOIN RD
ON (R.ID = RD.RES_INFO_ID)
LEFT JOIN RES
ON (R.SEL_EVL_RES_ID = RES.ID)
LEFT JOIN S
ON (S.ID = R.SEL_EVL_ID)
LEFT JOIN D
ON (RD.DEC_DET_ID = D.ID)
LEFT JOIN M
ON (S.EVL_MAS_ID = M.ID)
LEFT JOIN P_RES
ON (P_RES.PRS_ID = RES.PRS_ID)
LEFT JOIN P_MAS
ON (P_MAS.PRS_ID = M.PRS_ID)
LEFT JOIN P_EVL
ON (P_EVL.PRS_ID = S.PRS_ID)
LEFT JOIN P
ON (P.EVL_MAS_ID = M.ID)
LEFT JOIN DM
ON (DM.EVL_RES_INF_DET_ID = RD.ID);
Thanks in advance
If you need all records from T3, then that should be the first table in the FROM clause. All the joins should be LEFT JOINs. I presume you intend:
SELECT COUNT(*)
FROM T3 R LEFT JOIN
T1 S
ON S.ID = R.SELF_EVALUATION_ID LEFT JOIN
T2 RD
ON RD.EVL_RESOURCE_INFO_ID = R.ID LEFT JOIN
T4 RES
ON R.SELF_EVALUATION_RESOURCE_IDRES.ID LEFT JOIN
T5 M
ON S.EVALUATION_MASTER_ID = M.ID LEFT JOIN
T6 D
ON RD.DECENCY_DETAIL_ID = D.ID LEFT JOIN
T7 P
ON P.EVALUATION_MASTER_ID = M.ID LEFT JOIN
T8 DM
ON DM.EVL_RES_INFO_DETAIL_ID = RD.ID;
In the future, follow a simple rule: Never use commas in the FROM clause. Always use explicit JOIN syntax with the join conditions in the ON clause.