2014-12-03 6 views
0

회원이 작성한 제품 및 제품 정보를 보여주는 쿼리를 작성하려고합니다. 조건문 작성 방법이 있는지 궁금합니다. 회원이 구입 한 제품이 의류 테이블, 액세서리 테이블에서 나온 것인지 아니면 두 테이블에서 제품을 구입했는지 결정하십시오. 그리고 테이블이 Product 테이블의 ProductID 인 결정 요인에 대해 사용자가 의류 테이블에서 나온 것이 아니라면 ProductID는 0이어야합니다. 필요한 경우 ProductID는 Clothing 테이블과 Accessory 테이블 모두에 ProductTypeID로 연결됩니다 더 많은 정보, 저에게 알려주세요, 고마워요!Access 2013에서 선택할 테이블을 결정하기위한 조건문

Access에서 테이블의 이미지 here

입니다 그리고 여기가

SELECT Member.MemberID, Member.FirstName, Member.LastName, 
Purchase.PurchaseDate, LineItem.CalculatedPrice, Product.ProductType 
FROM ClothingType 
    INNER JOIN ((AccessoryType INNER JOIN (((Member INNER JOIN Purchase 
    ON Member.MemberID = Purchase.MemberID) 

    INNER JOIN (Product INNER JOIN LineItem ON Product.ProductID = LineItem.ProductID) 
    ON Purchase.PurchaseID = LineItem.PurchaseID) 

    INNER JOIN Accessory ON Product.ProductID = Accessory.ProductTypeID) 
    ON AccessoryType.AccessoryTypeID = Accessory.AccessoryTypeID) 

    INNER JOIN Clothing ON Product.ProductID = Clothing.ProductTypeID) 
    ON ClothingType.ClothingTypeID = Clothing.ClothingTypeID; 
+0

것은 그것은 것 SQL보기로 전환하고 여기에 SQL 문을 복사하여 붙여 넣기하면 더 좋을 것입니다. – cha

+0

Ok, 원래 게시물을 업데이트했습니다. – Jerryq27

+0

데이터베이스의 재 설계를 제안합니다. 항목 유형을 나타내는 추가 필드/열이있는 결합 된 의류 액세서리 테이블에 액세서리가 나열되어서는 안되는 이유가 있습니까? 세부 사항이 제품에 포함되어 있지 않다는 사실에 조금 놀랐습니다. – Fionnuala

답변

0

당신은 왼쪽 조인을 사용하도록 쿼리를 수정해야 SQL보기입니다. 불행히도 MS Access는 조인 (JOINS)의 괄호에 대해 광적입니다. 따라서 아래의 쿼리가 잘못되었을 수 있습니다. 액세스가 가입 절에 오류에 대한 불평 경우 아래에 의견을, 나는 그것을 해결하기 위해 최선을 다하겠습니다 : 제가 위에서 언급 한 바와 같이 조인

SELECT Member.MemberID, Member.FirstName, Member.LastName, 
Purchase.PurchaseDate, LineItem.CalculatedPrice, Product.ProductType 
FROM Member INNER JOIN (Purchase 

    INNER JOIN (Product INNER JOIN (LineItem 

    LEFT JOIN (Accessory LEFT JOIN (AccessoryType 
    LEFT JOIN (Clothing LEFT JOIN ClothingType ON 
       ClothingType.ClothingTypeID = Clothing.ClothingTypeID) 
    ON Product.ProductID = Clothing.ProductTypeID) 
    ON AccessoryType.AccessoryTypeID = Accessory.AccessoryTypeID) 
    ON Product.ProductID = Accessory.ProductTypeID) 

    ON Product.ProductID = LineItem.ProductID) 
    ON Purchase.PurchaseID = LineItem.PurchaseID) 
    ON Member.MemberID = Purchase.MemberID); 

그러나, 그것의 사용을 주위에 있기 때문에 액세스 어리 석음으로 작동하지 않을 수 있습니다 . 디자이너의 마지막 네 조인 줄 (Product 오른쪽)을 두 번 클릭하고 "모두 왼쪽 표에서 선택하고 오른쪽 표에서 일치하는 항목 만"옵션을 선택하는 것이 좋습니다.

UPDATE 액세스면)에 LEFT JOIN은 : 추가하는 것을 잊었다 : 당신이 한 번 당신이해야 할 모든이 같은 액세서리/의류에 대한 설명은 식을 사용하는 작업에 참여 :

Iif(IsNULL(AccessoryType.Description), ClothingType.Description, AccessoryType.Description) as Description 
+0

예 조인에 대한 액세스가 불만 스러울 때 수정할 수 있습니다. 액세스가 쉬운 형식으로 변환하려고 시도합니다. 그 도전을 맡기로 결정한 경우 알려 주시기 바랍니다. 감사합니다. – Jerryq27

+1

GUI를 사용해 보셨습니까? 저를 믿으십시오 그렇게 많이 편합니다. – cha