2015-09-20 36 views
0

我想轉換此查詢。 在sql中使用它。 我不知道如何與具有轉換訪問查詢到sql與最後的日期和最大

SELECT  main.id, 
      main.rep1, 
      main.NAME, 
      main.family, 
      main.ostan, 
      main.city, 
      main.telhome, 
      Max(report.nextc) AS maxofnextc, 
      main.status, 
      Last(report.date) AS lastofdate, 
      Last(report.connect) AS lastofconnect, 
      main.hospital, 
      main.[Bimeh-Not], 
      main.tamin, 
      main.khadamat, 
      main.niroo, 
      main.emdad, 
      main.takmili, 
      main.sayer, 
      main.darmangar 
FROM  main 
INNER JOIN report 
ON   main.id = report.id 
GROUP BY main.id, 
      main.rep1, 
      main.NAME, 
      main.family, 
      main.ostan, 
      main.city, 
      main.telhome, 
      main.status, 
      main.hospital, 
      main.[Bimeh-Not], 
      main.tamin, 
      main.khadamat, 
      main.niroo, 
      main.emdad, 
      main.takmili, 
      main.sayer, 
      main.darmangar 
HAVING  (((main.rep1) LIKE "BEN") 
      AND ((Max(report.nextc))<=[تاريخ روز جاري را وارد نماييد]) 
      AND ( main.status)<>4 
      AND ( main.status)<>1 
      AND ( main.status)<>5)) 
ORDER BY max(report.nextc) DESC , 
      main.status, 
      last(report.connect); 
+0

我想將其移至crm 2013報告。 – Morteza

+0

SQL是一種通用語言。你將它移動到哪個數據庫?請適當地標記您的問題。 –

+0

我在評論crm 2013中提到它意味着SQL 2012 – Morteza

回答

1

SQL表代表無序集使用拉斯和最大值組,所以沒有LAST()沒有排序的一些提。當然,這並不能真正幫助你,因爲MS Access確實有一些命令的概念。

讓我猜想,排序是真的基於date,所以你想要一些最新的領域。如果是這樣,類似以下內容應該可以解決您的問題:

SELECT m.*, r.nextc AS maxofnextc, r.date AS lastofdate, 
     r.connect AS lastofconnect 
FROM main m JOIN 
    (SELECT r.*, row_number() over (partition by r.id order by r.date desc) as seqnum 
     FROM report r 
    ) r 
    ON m.id = r.id AND seqnum = 1 
WHERE m.rep1 LIKE 'BEN' AND 
     m.status not in (1, 4, 5) 
     r.nextc <='تاريخ روز جاري را وارد نماييد' 
ORDER BY r.nextc DESC , m.status, r.connect;