2013-04-05 3 views
0

여러 테이블의 열을 포함하는보기를 만들려고합니다.SQL Server에서보기를 가져올 수 없습니다.

enter image description here

그리고 이것은 내 쿼리입니다 :

SELECT  
    Billing.WebPortalBilling.WebPortalBillingId, 
    Billing.WebPortalBilling.CorporationId, 
    Billing.WebPortalBilling.TokenId, 
    Billing.WebPortalBilling.GatewaySupportFee, 
    Billing.WebPortalBilling.GatewayPerTransactionFee, 
    Billing.WebPortalBilling.PortalPerCustomerFee, 
    Billing.WebPortalBilling.PortalSupportFee, 
    Customer.Account.AccountNumber, 
    Billing.WebPortalBilling.IsActive, 
    Customer.Customer.Name, 
    Customer.Customer.TaxCode, 
    Company.CorporationStructure.Branch 
FROM   
    Company.CorporationStructure 
RIGHT OUTER JOIN 
    Customer.Account ON Company.CorporationStructure.CorporationStructureId = Customer.Account.CorporationStructureId 
RIGHT OUTER JOIN 
    Customer.Customer ON Company.CorporationStructure.Branch = Customer.Customer.Branch 
RIGHT OUTER JOIN 
    Billing.WebPortalBilling ON Customer.Account.CorporationId = Billing.WebPortalBilling.CorporationId 
WHERE  
    (Billing.WebPortalBilling.IsActive = 1) 

그것은 단지 정확하지 않은 한 기록을 반환있어이는 모습입니다

. 고객 번호를 WebPortalBilling 테이블에 연결하고 계정 번호와 다른 두 테이블의 branth를 연결하려고합니다.

저는 SQL을 처음 사용하기에 친절합니다.

감사합니다.

+1

가 왼쪽 또는 오른쪽 webportalbilling에 조인 시도하지만 다음 webportalbilling 열에서 특정 값을 필요로하는 외부
을 죽이고 주석 내부 결합. 밖으로 나가서 얻은 것을 확인하십시오. 또는 옵션으로 null을 포함하십시오. – Narnian

답변

2

으로는 어디 다음은 본질적으로 그것을 만들고,

SELECT  
    Billing.WebPortalBilling.WebPortalBillingId, 
    Billing.WebPortalBilling.CorporationId, 
    Billing.WebPortalBilling.TokenId, 
    Billing.WebPortalBilling.GatewaySupportFee, 
    Billing.WebPortalBilling.GatewayPerTransactionFee, 
    Billing.WebPortalBilling.PortalPerCustomerFee, 
    Billing.WebPortalBilling.PortalSupportFee, 
    Customer.Account.AccountNumber, 
    Billing.WebPortalBilling.IsActive, 
    Customer.Customer.Name, 
    Customer.Customer.TaxCode, 
    Company.CorporationStructure.Branch 
FROM   
    Company.CorporationStructure 
RIGHT OUTER JOIN 
    Customer.Account ON Company.CorporationStructure.CorporationStructureId = Customer.Account.CorporationStructureId 
RIGHT OUTER JOIN 
    Customer.Customer ON Company.CorporationStructure.Branch = Customer.Customer.Branch 
RIGHT OUTER JOIN Billing.WebPortalBilling 
    ON Customer.Account.CorporationId = Billing.WebPortalBilling.CorporationId 
    AND Billing.WebPortalBilling.IsActive = 1 
+0

잡았다 ... 나는 지금 그것을 얻는다! – ErocM

0

이것을 시도해보십시오. 왼쪽 결합이 더 명확하다고 생각합니다.

SELECT  
    B.WebPortalBillingId, 
    B.CorporationId, 
    B.TokenId, 
    B.GatewaySupportFee, 
    B.GatewayPerTransactionFee, 
    B.PortalPerCustomerFee, 
    B.PortalSupportFee, 
    C.AccountNumber, 
    B.IsActive, 
    C.Name, 
    C.TaxCode, 
    CS.Branch 
FROM Customer.Customer C 
    LEFT JOIN Company.CorporationStructure CS ON CS.Branch = C.Branch 
    LEFT JOIN Customer.Account A ON CS.CorporationStructureId = A.CorporationStructureId 
    LEFT JOIN Billing.WebPortalBilling B ON A.CorporationId = B.CorporationId 
WHERE B.IsActive = 1 
관련 문제