Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL内部联接与max函数不同_Sql_Sql Server 2005 - Fatal编程技术网

SQL内部联接与max函数不同

SQL内部联接与max函数不同,sql,sql-server-2005,Sql,Sql Server 2005,我有tbMeasurement和tbPatientMeasurement表 t测量 MeasurementIDP MeasurementName PatientMeasurementIDP MeasurementIDF MeasurementValue Taken (Datetime) tbPatientMeasurement MeasurementIDP MeasurementName PatientMeasurementIDP MeasurementIDF MeasurementVal

我有tbMeasurement和tbPatientMeasurement表

t测量

MeasurementIDP
MeasurementName
PatientMeasurementIDP
MeasurementIDF
MeasurementValue
Taken (Datetime)
tbPatientMeasurement

MeasurementIDP
MeasurementName
PatientMeasurementIDP
MeasurementIDF
MeasurementValue
Taken (Datetime)
执行以下查询时:

SELECT DISTINCT dbo.tbMeasurement.MeasurementName
      , dbo.tbPatientMeasurement.MeasurementValue
      , dbo.tbPatientMeasurement.Taken
  FROM dbo.tbMeasurement
 INNER JOIN dbo.tbPatientMeasurement
   ON  dbo.tbMeasurement.MeasurementIDP = dbo.tbPatientMeasurement.MeasurementIDF
这将返回其中一个MeasurementName的双条目。 而且我还想要
MeasurementName,MeasurementValue,通过max take(datetime)。

试试这个-

SELECT DISTINCT 
      m.MeasurementName
    , p2.MeasurementValue
    , p2.Taken
FROM dbo.tbMeasurement m
JOIN (
    SELECT 
          p.MeasurementValue
        , Taken = MAX(p.Taken) 
    FROM dbo.tbPatientMeasurement p 
    GROUP BY m.MeasurementName, p.MeasurementValue
) p2 ON m.MeasurementIDP = p2.MeasurementIDF

欢迎来到StackOverflow。请正确标记您的问题,您使用的是哪种RDBMS、SQL Server、MySQL、Oracle还是其他?这样,您将获得更多的可见性和获得答案的机会。您被要求指定SQL server类型-解决方案取决于此。我正在使用SQL server 2005和新的SQL server,因此我不知道SQL server类型。