首页 > 解决方案 > 通过连接四个表计算一个时间跨度内的变量

问题描述

有四个表:

Propertyno (
    propertyno, 
    street, 
    city, 
    postcode, 
    type, 
    rooms, 
    rent, 
    ownerno, 
    staffno, 
    branchno)

Viewing (
    clientno, 
    propertyno, 
    viewdate, 
    comment)

Client (
    clientno, 
    fname, 
    lname, 
    telno, 
    preftype, 
    maxrent)

Registration (
    clientno, 
    branchno, 
    staffno, 
    datejoined)

在客户注册请求后的 1 个月、2 个月和 3 个月内查找每个分支机构的物业查看次数。由于目前无法访问确切的数据库,因此该问题的答案将在类似情况下受到某种解释和感知(该问题可以视为一种抽象问题)。我根据我的理解提供了一个示例代码。由于我是初学者,当然下面的代码很可能是错误的。另外,我对一个月、两个月等期间的观看次数计数没有确切的想法。如果您能用您的代码和评论纠正我,我将不胜感激。

SELECT 
   PR.propertyno, PR.branchno, V.clientno, V.propertyno, V.viwedate, 
   R.clientno, R.datejoined 
FROM 
   PropertyforRent PR LEFT JOIN Viewing V ON PR.propertyno = V.propertyno
   INNER JOIN Client AS C ON V.clientno = C.clientno
   INNER JOIN Registration AS R ON C.clientno = R.clientno
SELECT COUNT(viewdate) WHERE start_date <=@date AND end_date >=@date
   GROUP BY propertyno
   GROUP BY branch;

标签: sqlsql-server

解决方案


推荐阅读