2015-01-01 3 views
0

질문하기 전에 저는 새해 복 많이 받으라고 말하고 싶습니다! 하지만 문제가 있습니다. 저는 현재 자동차 용 데이터베이스를 만들기위한 학교 임무가 있습니다. 합계를 계산하려면이 쿼리를 사용합니다.테이블의 두 행

SELECT Factuur.Dagen, Factuur.AutoNR AS carNR, autos.AutoNR, autos.Klasse AS AutoKlasse, Prijzen.Klasse, Prijzen.dag125KM, Prijzen.ExtraKM, (prijzen.dag125KM*Factuur.Dagen) AS MinPrijs, Factuur.FactuurNR, Factuur.KlantNR, Factuur.Begindatum, Factuur.Einddatum, Factuur.Borg, (((([Factuur]![EindKMStand]-[Factuur]![BeginKMStand])-([Factuur]![Dagen]*125))*[Prijzen]![ExtraKM])+([Prijzen]![dag125KM]*[Factuur]![Dagen])) AS TotaalPrijs, Gegevens.voorletters, Gegevens.tussenvoegsel, Gegevens.achternaam, Gegevens.straatnaam, Gegevens.huisNR, Gegevens.Postcode, Gegevens.rekeningNR, Gegevens.Plaats, (([Factuur]![EindKMStand]-[Factuur]![BeginKMStand])-Dagen*125) AS KMteVEEL 
FROM autos, Factuur, Prijzen, Gegevens 
WHERE (((Factuur.AutoNR)=Autos.AutoNR) And ((autos.Klasse)=Prijzen.Klasse) And ((Factuur.KlantNR)=Gegevens.KlantNR)); 

하지만 이중 행이 표시됩니다. (Factuur.AutoNR 및 Autos.AutoNR, AutoKlasse 및 Klasse) (사진 : http://gyazo.com/c51f484617d946ae70f9446f41256bec)

정보가있는 행을 하나만 가져 오는 방법은 없나요?

좋은 하루 되세요!

+0

어떤 DBMS를 사용하고 있습니까? –

답변

1

먼저 더 나은 답변을 얻으려면 사용중인 RMDBS를 알려주는 것이 좋습니다 (스크린 샷에서 나는 Access를 추측하고 있음). 다른 데이터베이스 시스템은 SQL을 완전히 다르게 구현합니다.

두 번째로, 쿼리에서 각 행을 어떻게 나타내시겠습니까? 작성한대로 각 Factuur에 대해 한 행을 가져옵니다 (송장 [내 네덜란드어가 좋지 않다는 사과 ...]). 해당 송장의 총 가격이 표시됩니다.

autoNR로 합계를 얻고 싶습니다. 이렇게하려면 당신은 당신에 의해 그룹을 사용하는 경우, 당신은 당신이 집계 할 필드 (AutoNR 및 AutoKlasse)하고 집계 할 필드 (TotaalPrijs) 및 원하는 기능을 선택

SELECT 
    SUM(A.TotaalPrijs) As TotaalPrijs, 
    A.AutoNR, 
    A.AutoKlasse 
FROM 
     (SELECT Factuur.Dagen, Factuur.AutoNR AS carNR, autos.AutoNR, autos.Klasse AS AutoKlasse, Prijzen.Klasse, Prijzen.dag125KM, Prijzen.ExtraKM, (prijzen.dag125KM*Factuur.Dagen) AS MinPrijs, Factuur.FactuurNR, Factuur.KlantNR, Factuur.Begindatum, Factuur.Einddatum, Factuur.Borg, (((([Factuur]![EindKMStand]-[Factuur]![BeginKMStand])-([Factuur]![Dagen]*125))*[Prijzen]![ExtraKM])+([Prijzen]![dag125KM]*[Factuur]![Dagen])) AS TotaalPrijs, Gegevens.voorletters, Gegevens.tussenvoegsel, Gegevens.achternaam, Gegevens.straatnaam, Gegevens.huisNR, Gegevens.Postcode, Gegevens.rekeningNR, Gegevens.Plaats, (([Factuur]![EindKMStand]-[Factuur]![BeginKMStand])-Dagen*125) AS KMteVEEL 
     FROM autos, Factuur, Prijzen, Gegevens 
     WHERE (((Factuur.AutoNR)=Autos.AutoNR) And ((autos.Klasse)=Prijzen.Klasse) And ((Factuur.KlantNR)=Gegevens.KlantNR)) 
    ) AS A 
GROUP BY 
    A.AutoNR, A.AutoKlasse 

같은 뭔가가 필요 (귀하의 경우 SUM이지만 MIN 또는 MAX 일 수도 있음) 집계에 사용하면 쿼리는 AutoNR과 AutoKlasse의 고유 한 조합마다 TotaalPrijs의 합계를 얻습니다.

+0

답변 해 주셔서 감사합니다! 내 나쁜 질문에 대해 죄송합니다. 내가 말한 것은 정확한 정보가있는 2 개의 열이 있기 때문에 단지 1 열의 Klasse와 1 AutoNR 만 원한다는 것입니다. 이걸 할 수있는 방법은 없나요? – Jesse