2017-12-17 13 views
0

나는 데이터베이스에서 작업하고 있지만 문제가있는 (총 멍청한 놈). 이 계정에 아직 이미지를 게시 할 수 없으며 이미지에 대한 링크를 게시했습니다. 기본적으로 예약 테이블과 방 테이블이 있습니다. 나는 각각의 방에 날짜 차등 연산을 만들고 그것을 임대료로 곱하고 방 번호별로 그룹화하려고했습니다. 최종 결과는 내가 계산할 때만 필요하기 때문에 날짜 차이를 숨긴 후에 이와 같습니다. 나는 각 객실에 대한 DATEDIFF 작업을하더라도 캔트, 나는 아직 돈을 부분에 대한 계산을하지 않았다선택 쿼리, MS Access의 복수 기록과 날짜의 차이

SELECT [Room Number], 
DATEDIFF("d", min(CheckInDate), max(CheckOutDate)) as dif 
FROM Reservations 
GROUP by [Room Number] 

:

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<table style="width:100%"> 
 
    <tr> 
 
    <th>Room Number</th> 
 
    <th>Total</th> 
 
    
 
    </tr> 
 
    <tr> 
 
    <td>1</td> 
 
    <td>375</td> 
 
    
 
    </tr> 
 
    <tr> 
 
    <td>2</td> 
 
    <td>375</td> 
 
    
 
    </tr> 
 
    <tr> 
 
    <td>3</td> 
 
    <td>1680</td> 
 
    
 
    
 
    </tr> 
 
    <tr> 
 
    <td>4</td> 
 
    <td>700</td> 
 
    
 
    </tr> 
 
    <tr> 
 
    <td>6</td> 
 
    <td>60</td> 
 
    
 
    </tr> 
 
    <tr> 
 
    <td>7</td> 
 
    <td>540</td> 
 
    
 
    </tr> 
 
</table> 
 

 
</body> 
 
</html>

내 SQL 쿼리 등이 있습니다 .

enter image description here

+0

스택 오버플로에 관한 질문에서 테이블을 공유하는 방법에 대해 [이 메타 질문] (https://meta.stackoverflow.com/a/359204/7296893)을 읽어보십시오. HTML 테이블은 스크린 샷보다 뛰어나지 만 여전히 과도한 공간을 차지합니다. –

답변

0

난 당신이 room_id으로 각 방 - 고객 쌍에 대한 DATEDIFF 다음 그룹을 계산할 필요가 있다고 생각합니다. 당신은 후에 또는 그룹별로 가격을 여러 번 할 수 있습니다. 나는 MS 액세스 모르지만 SQL 논리에 의해 그것과 같아야합니다

SELECT [Room Number], SUM(DATEDIFF("d", CheckInDate, CheckOutDate)) * price_per_night as dif 
FROM Reservations 
GROUP by [Room Number] 
+0

네, 당신의 대답은 아주 가깝습니다. 계속 노력해야합니다. –

0

의 당신의 예약이 테이블에 저장됩니다 가정 해 봅시다 예약 전화 및 객실 정보 테이블이라는 방에 저장됩니다. 당신은 그들이 예약 여부되었는지, 모든 객실을 포함 할 경우 , 이것을 사용 :

SELECT Rooms.[Room Number], Sum((Reservations.CheckOutDate-Reservations.CheckInDate)*Rooms.Price) AS [Total per room] 
FROM Reservations RIGHT JOIN Rooms ON Reservations.[Room Number] = Rooms.[Room Number] 
GROUP BY Rooms.[Room Number]; 

이 권리를 교체 INNER에 의해 JOIN 당신이 예약 한 객실에만 관심이 있다면 가입하세요.

PS 객실 7의 HTML 예제가 잘못되었으므로 1080 (9 * 120)이어야합니다.