2017-04-08 1 views
0

두 문장이 있는데 그 값을 계산하고 싶습니다. 두 값 5를 계산해야 - 5 =두 문장 사이의 계산

SELECT COUNT(*) AS 'Aantal stoelen geboekt' 
FROM Boekingsregel, Vlucht 
WHERE Boekingsregel.Vlucht_Vlucht_Id = Vlucht.Vlucht_Id 
AND Vlucht_Datum = '2017-04-10'; 

SELECT min(Vliegtuig_Aantal_Stoelen) AS 'Max aantal stoelen' 
FROM Vliegtuig; 
+0

쿼리 결과에 정수 출력이 있습니까? '@query_one_output - @ query_two_output' 만 확인하고 싶습니까? –

답변

0

난 당신이 또한 공백 별칭을 사용해서는 안 두 쿼리의 관계가 표시되지 않지만. 앨리어스를 가능한 한 짧게 만드십시오.하지만 보유하고있는 값을 정의 할 수는 있지만, 이것이 내가하는 것보다 더 잘 알고있는 쿼리이기 때문에 정의하십시오.

SELECT BR.`Aantal stoelen geboekt` - VT.`Max aantal stoelen` AS TheResult 
FROM (SELECT COUNT(*) AS `Aantal stoelen geboekt` 
FROM Boekingsregel, Vlucht 
WHERE Boekingsregel.Vlucht_Vlucht_Id = Vlucht.Vlucht_Id 
AND Vlucht_Datum = '2017-04-10') BR, 
(SELECT min(Vliegtuig_Aantal_Stoelen) AS `Max aantal stoelen` FROM Vliegtuig) VT; 

참고 : 난 그냥 여기 입력 테스트하지

으로이 문제에 대한 하나 이런 일에 두 개의 쿼리를 결합 할 수 있습니다.

이것이 당신이 찾고있는 것이 아니면 어쩌면 당신은 당신의 요구 사항을 더 자세히 설명해야합니다. 그래서 모든 사람이 이해할 수 있고 당신을 도울 수 있습니다.

0

먼저 적절한 JOIN 구문을 사용하는 방법을 배우게 (내가 대답 0을보고 싶어).

둘째로, FROM 절에 이들을 결합하십시오.

SELECT COUNT(*) AS AantalStoelenGeboekt, vt.MaxAantalStoelen 
FROM Boekingsregel b JOIN 
    Vlucht v 
    ON b.Vlucht_Vlucht_Id = v.Vlucht_Id CROSS JOIN 
    (SELECT min(Vliegtuig_Aantal_Stoelen) AS MaxAantalStoelen 
     FROM Vliegtuig 
    ) vt 
WHERE v.Vlucht_Datum = '2017-04-10'; 

참고 : MySQL에서는이 구문을 허용합니다. 아마도 청소 방법은 MaxAantalStoelen에 집계 함수를 사용하는 것입니다

SELECT COUNT(*) AS AantalStoelenGeboekt, 
     MAX(vt.MaxAantalStoelen) as MaxAantalStoelen 
FROM Boekingsregel b JOIN 
    Vlucht v 
    ON b.Vlucht_Vlucht_Id = v.Vlucht_Id CROSS JOIN 
    (SELECT min(Vliegtuig_Aantal_Stoelen) AS MaxAantalStoelen 
     FROM Vliegtuig 
    ) vt 
WHERE v.Vlucht_Datum = '2017-04-10';