2013-07-16 26 views
2

我有一個T-SQL查詢但努力將其轉換爲SQLite for android,我有相同的表名,字段名稱,表結構和關係,任何幫助將不勝感激,下面是查詢T-SQL查詢到SQLITE

SELECT 
    F.fieldID,F.name,F.description,F.sizeHA,F.sizeA 
    ,F.owner,F.annualRent,F.latitude,F.longitude 
    ,F.Farm_farmID,F.isActive,F.deactivationDate,F.areas, 
    (SELECT COUNT(DISTINCT LOWER(culture)) FROM Usages 
      WHERE Field_fieldID = F.fieldID 
      AND YEAR(date) = (SELECT TOP 1 YEAR(date) FROM Usages 
          ORDER BY Date DESC) 
    ) as UsageCount 
    ,(SELECT TOP 1 u.culture FROM Usages u WHERE u.Field_fieldID = F.fieldID 
     ORDER BY u.date desc) as culture 
    ,(SELECT TOP 1 u.sort FROM Usages u WHERE u.Field_fieldID = F.fieldID 
     ORDER BY u.date desc) as sort 
FROM Fields as F INNER JOIN Usages s on s.Field_fieldID = F.fieldID 
GROUP BY F.fieldID,F.name,F.description,F.sizeHA,F.sizeA 
,F.owner,F.annualRent, 
F.latitude,F.longitude,F.Farm_farmID,F.isActive,F.deactivationDate,F.areas 
+2

'奮力it'轉換 - 這是什麼意思?你會得到錯誤?編譯器錯誤或運行時?怎麼了? – Simon

+0

@Simon我不熟悉sqllite,所以很難獲得正確的語法和TOP關鍵字的替代方案,從Date獲得Year等 –

回答

1

更換的TOP用法:

SELECT TOP 1 ... 

LIMIT clause

SELECT ... LIMIT 1 

此外,沒有YEAR函數。如果您的日期都存儲在supported date formats之一,使用strftime獲得年爲四位數字符串:

strftime('%Y', date)