2014-11-16 5 views
-1

저는이 질문에 정말 고심하고 있습니다. 나는 처음 세 부분을 가지고있다.여러 부분으로 구성된 SQL SELECT 문

나는 대답을 원하지 않으며, 나는 단지 올바른 방향으로 움직일 필요가있다.

1) 첫 번째 열이 나에게 범주 이름 (열라는 카테고리 이름)

2) 두 번째 열은 총 할인 된 가격으로 날을 제공해야합니다 모두를 제공한다 : 여기

는 질문입니다 판매되는 모든 제품은 (각 카테고리 (열라고 총 주문 값)

3) 세 번째 열은 각 카테고리의 최신 주문 날짜로 날을 제공해야한다에 COL (세금 또는 배송에 대한하지

걱정을 할) 012

최근 주문). 이 날짜는 작성된 마지막 5 개 주문 그룹에서 가져와야합니다.

4) '기타'카테고리 유형의 '문자열'

카테고리를 입력하고 나머지 악기 (들에베이스 - 및 기타 배치 분류 유형라는 네 번째 열)을 작성

을 구성

다음
USE MyGuitarShop 
    SELECT CategoryName, SUM(DiscountTotal) AS TotalDiscount, MAX(OrderDate) AS NewestOrder 
    FROM Categories AS C JOIN Products AS P ON C.CategoryID = P.CategoryID 
    JOIN OrderItems AS OI ON P.ProductID = OI.ProductID 
    JOIN Orders AS O ON O.OrderID = OI.OrderID 
    GROUP BY CategoryName 

방법 테이블 A는 : 가장 큰에서 여기

에 총 주문 값에 의한 결과는 지금까지 무엇을 가지고 카테고리 유형을 선택 절 부품 추가에 다음 범주에서 파생 된 경우

Categories: 
    CategoryID 
    CategoryName 


    Products: 
    ProductID 
    CategoryID 
    ProductCode 
    ProductName 
    Description 
    ListPrice 
    DiscountPercent 
    DiscountAmount 
    DiscountPrice 
    DateAdded 


    Orders: 
    OrderID 
    CustomerID 
    OrderDate 
    ShipAmount 
    TaxAmount 
    ShipDate 
    ShipAddressID 
    CardType 
    CardNumber 
    CardExpires 
    BillingAddressID 

답변

0

: 설정을 다시

CASE WHEN CategoryName = 'Guitar' OR CategoryName = 'Bass' 
    THEN 'String' 
    ELSE 'Other' 
END AS CategoryType 

당신은뿐만 아니라 GROUP BY 부분에 위의 내용을 추가해야합니다 다음과 같이

CASE WHEN CategoryName = 'Guitar' OR CategoryName = 'Bass' 
    THEN 'String' 
    ELSE 'Other' 
END 

"ORDER BY"를 수행하려면 먼저 "Total Order Value"를 계산하는 방법을 설명해야합니다.

+0

방공호가 멍청이를 원했을뿐입니다. – chrisb

+0

흠 ... 네 말이 맞아, 내가 그에게 전능 한 밀대를 줬어. – JohnS

+0

롤 고마워요 @ 존스와 @chrisb! 나는 그 도움에 감사한다. 나는 완전히 간격을 뒀고 CASE WHEN 함수를 사용하는 것에 대해 모두 잊었다! – jfritts6524

0

그냥 (4)에 대한 찔러보기 만하면 ... CASE을보십시오. 행운을 빕니다.