如何在SQL Server中按列(按日期)获取数据

时间:2018-01-04 04:19:39

标签: sql sql-server sql-server-2008

在下表中,我需要基于nopol上一个日期组的lastservice数据。

表格数据:

enter image description here

我尝试使用下面的查询

SELECT 
    TGL, A.NOPOL, LASTSERVICE 
FROM 
    TRREALPRWT AS A
INNER JOIN 
    (SELECT 
         MAX(TGLREAL) AS TGL, NOPOL 
     FROM 
         TRREALPRWT 
     GROUP BY 
         NOPOL) AS B ON B.NOPOL = A.NOPOL
GROUP BY 
    A.NOPOL, TGL,LASTSERVICE

但获得的结果不是每个人。

我应该从查询中做些什么,以便它生成如下所示的数据

| NOPOL   | LASTSERVICE | TGLREAL                   |
| L9235VB | 224270      | 2018-01-26 00: 00: 00.000 |
| B9891JT | 219270      | 2018-02-28 00: 00: 00.000 |

4 个答案:

答案 0 :(得分:0)

我认为这应该有效,假设TGLREAL是你的约会对象。

SELECT TGL,A.NOPOL,LASTSERVICE FROM TRREALPRWT
WHERE TGLREAL IN (SELECT MAX(TGLREAL) FROM  TRREALPRWT)

答案 1 :(得分:0)

似乎只使用package com.smart.beanfactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import java.io.File; public class BeanLifeCycle { private static void LifeCycleInBeanFactory() { Resource res = new ClassPathResource("/com/smart/beanfactory/beans.xml"); try { System.out.println(res.getURL()); } catch (Exception e) { System.out.println(e.fillInStackTrace()); } } public static void main(String[] args) { LifeCycleInBeanFactory(); } } 子句而不需要内部查询

group by

答案 2 :(得分:0)

为内部查询中的所有var li = revenuePoint.appendChild(document.createElement('li')); // returns the LI li.appendChild(document.createTextNode("Revenue decreased by (" + (per * 100) + "%) on YoY basis from 2015 to 2016.")); // returns the text node 获取所有MAX(TGL),然后将其与您在NOPOLNOPOL值上匹配的原始表格再次加入。

MAX(TGL)

答案 3 :(得分:0)

问题中的示例输出似乎表明您想要每个nopol的第一个tgl,max(lastservice)

SELECT nopol,MIN(lastservice) lastservice,  MAX(tgl) tglreal
FROM trreal
GROUP BY nopol