对SQLITE的T-SQL查询

时间:2013-07-16 12:07:05

标签: android sql sqlite tsql

我有一个T-SQL查询,但很难将其转换为SQLite for android,我有相同的表名,字段名,表结构和关系,任何帮助将不胜感激,下面是查询

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

1 个答案:

答案 0 :(得分:1)

替换TOP的使用情况:

SELECT TOP 1 ...

使用LIMIT clause

SELECT ... LIMIT 1

此外,没有YEAR功能。如果您的日期存储在supported date formats之一中,请使用strftime将年份作为四位数字符串:

strftime('%Y', date)