2012-10-06 3 views
1

4 개의 테이블이 있습니다. 하나는 아티스트라고합니다. 여기에 테이블 구조 : 다른 테이블 작업SQL에 관한 질문입니다.

workId title copy medium description artist ID 

트랜스 테이블이라고

artistID lastname firstname nationality dateofbirth datedcease 

TransactionID Date Acquired Acquistionprice datesold 
askingprice salesprice customerID  workID 

고객 테이블

customerID lastname Firstname  street  city  state 
zippostalcode  country areacode phonenumber email 

첫 번째 질문은 작가가 가지고있는 것입니다 가장 작품 예술가의 수와 얼마나 많은 예술가 작품이 팔렸다. 내가 그렇게 어떻게? -

내 SQL 쿼리

SELECT * 
FROM dtoohey.artist A1 
INNER JOIN 
    (SELECT 
     COUNT(W1.ArtistID) AS COUNTER, artistID 
    FROM dtoohey.trans T1 
    INNER JOIN dtoohey.work W1 ON W1.workid = T1.Workid 
    GROUP BY W1.artistID) TEMP1 ON TEMP1.artistID = A1.artistID 
WHERE 
    A1.artistID = TEMP1.artistId 
ORDER BY 
    COUNTER desc; 

내가 전체 테이블을 얻을 근데 저는이 가장 높은 횟수 만 첫 번째 행을 표시하려면 아래

qns 2는 가장 높은 평균 이익 (즉, 예술가가 작품을 판매 할 때마다 얻는 수익의 평균)이되는 판매이며, 그 금액은 얼마입니까? 내가 그것을 실행할 수 아니에요

SELECT 
    A1.artistid, A1.firstname 
FROM 
    (SELECT 
     (salesPrice - AcquisitionPrice) as profit, 
     w1.artistid as ArtistID 
    FROM dtoohey.trans T1 
    INNER JOIN dtoohey.WORK W1 ON W1.workid = T1.workid) TEMP1 
INNER JOIN 
    dtoohey.artist A1 ON A1.artistID = TEMP1.artistID 
GROUP BY 
    A1.artistid 
HAVING 
    MAX(PROFIT) = AVG(PROFIT); 

아래

내 SQL 쿼리는

+0

MySQL과 오라클이 유형을 해결하기 위해 다른 구문을 사용하여 문제의. RDBMS의 두 가지 맛을 모두 해결할 수있는 답을 찾으십니까? – APC

답변

0

두 번째 문제는 정확하게 처음과 같은 해결 될 수

+0

한계 1을 사용했으나 여전히 작동하지 않습니다. 어디에 넣을 지 조언 해 주시겠습니까? – user1692068

+0

카운터 desc' 절 – Abubakkar

+0

하여 'ORDER가 HI 당신이'시도가 오라클 – user1692068

0

주먹 질문에 대한 사용 limit 1 하나. 그때

AVG(salesPrice - AcquisitionPrice) as AvgProfit 

와 함께

COUNT(W1.ArtistID) 

교체 사용 :

ORDER BY AvgProfit DESC 
LIMIT 1 

전체 쿼리가 있어야한다 :

SELECT A1.artistid, A1.firstname, TEMP1.avgProfit 
FROM (SELECT AVG(salesPrice - AcquisitionPrice) as avgProfit, W1.artistid as artistid 
     FROM dtoohey.trans T1 
     INNER JOIN dtoohey.WORK W1 
     ON W1.workid = T1.workid 
     GROUP BY artistid 
     ORDER BY avgProfit DESC 
     LIMIT 1) TEMP1 
INNER JOIN dtoohey.artist A1 
ON A1.artisid = TEMP1.artistid 
+0

안녕하세요, 안녕하세요, 정말로 queen을 입력 해 주실 수 있으십니까? – user1692068

+0

완전한 질의 응답을 추가했습니다. – Barmar

+0

오른쪽 괄호가 누락되었습니다. – user1692068

관련 문제