好吧,如果您有一个主控表任何列示例主控表列createdon,modifiedon,name,id
detailtable有createdon,modifiedon,name,id,mastertableid
现在,每个月都会自动在master上添加一行,并且它可能会有很多关于这个master的行,所以当一个用户不想等待下个月时,他会运行一个过程,在master上创建一个新行,在detail上创建其他行。so.so为这个月我将有两个主,现在我需要做一个选择只与年和月,如果我做这个选择,这第一个主自动生成和第二个主为用户生成的和细节,现在我不希望它发生,我只想要一个。我不介意这是最后一个,还是第一个,所以我需要一个
然后我的问题是,我如何选择最后创建的master?(每年的每个月)所以我不介意最后一个是为用户创建的,还是自动创建的,只是我需要最后一个master及其详细信息。
这是我当前的查询,但这是select all
SELECT
createdby
, createdbyname
, createdbyyominame
, createdon
, createdonutc
, createdonbehalfby
, createdonbehalfbyname
, createdonbehalfbyyominame
, importsequencenumber
, modifiedby
, modifiedbyname
, modifiedbyyominame
, modifiedon
, modifiedonutc
, modifiedonbehalfbyname
, modifiedonbehalfbyyominame
, modifiedonbehalfby
, ope_censoid
, ope_name
, ope_rutasid
, ope_rutasidname
, organizationid
, organizationidname
, overriddencreatedon
, overriddencreatedonutc
, statecode
, statecodename
, StatusCode
, statuscodename
, timezoneruleversionnumber
, utcconversiontimezonecode
FROM
ope_censo
ORDER BY
ope_censoid
, modifiedon我用最后一个查询得到了这个结果
createdby createdbyname createdbyyominame createdon createdonutc createdonbehalfby createdonbehalfbyname createdonbehalfbyyominame importsequencenumber modifiedby modifiedbyname modifiedbyyominame modifiedon modifiedonutc modifiedonbehalfbyname modifiedonbehalfbyyominame modifiedonbehalfby ope_censoid ope_name ope_rutasid ope_rutasidname organizationid
71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-01 07:03:24.000 NULL NULL NULL NULL NULL 71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-01 07:03:24.000 NULL NULL NULL NULL 581EB2D0-A24C-E111-97AC-005056977FBC 1 - Febrero - 2012 FF7C3DBD-3EBA-E011-8C48-005056977FBC R 197 AGUA PURIF HOG LOC F94F39E4-7C6B-E011-8C48-005056977FBC
71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-13 15:33:41.000 NULL NULL NULL NULL NULL 71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-13 15:33:41.000 NULL NULL NULL NULL 63FFFF15-5856-E111-97AC-005056977FBC 13 - Febrero - 2012 FF7C3DBD-3EBA-E011-8C48-005056977FBC R 197 AGUA PURIF HOG LOC F94F39E4-7C6B-E011-8C48-005056977FBC
71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-24 00:29:27.000 NULL NULL NULL NULL NULL 71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-24 00:29:27.000 NULL NULL NULL NULL 3D14A09B-7E5E-E111-97AC-005056977FBC 23 - Febrero - 2012 FF7C3DBD-3EBA-E011-8C48-005056977FBC R 197 AGUA PURIF HOG LOC F94F39E4-7C6B-E011-8C48-005056977FBC
71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-01 07:02:57.000 NULL NULL NULL NULL NULL 71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-01 07:02:57.000 NULL NULL NULL NULL 7F53A7C4-A24C-E111-97AC-005056977FBC 1 - Febrero - 2012 CC7C3DBD-3EBA-E011-8C48-005056977FBC R128 AGUA PURIF HOG LOC F94F39E4-7C6B-E011-8C48-005056977FBC
71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-13 15:33:28.000 NULL NULL NULL NULL NULL 71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-13 15:33:28.000 NULL NULL NULL NULL 49540510-5856-E111-97AC-005056977FBC 13 - Febrero - 2012 CC7C3DBD-3EBA-E011-8C48-005056977FBC R128 AGUA PURIF HOG LOC F94F39E4-7C6B-E011-8C48-005056977FBC
71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-24 00:37:06.000 NULL NULL NULL NULL NULL 71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-24 00:37:06.000 NULL NULL NULL NULL 753C4BAD-7F5E-E111-97AC-005056977FBC 23 - Febrero - 2012 CC7C3DBD-3EBA-E011-8C48-005056977FBC R128 AGUA PURIF HOG LOC F94F39E4-7C6B-E011-8C48-005056977FBC
71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-01 07:06:55.000 NULL NULL NULL NULL NULL 71D3CE46-1B71-E011-8C48-005056977FBC Administrador CRM BBebidas Administrador CRM BBebidas 2012-02-01 07:06:55.000 NULL NULL NULL NULL 88650A4F-A34C-E111-97AC-005056977FBC 1 - Febrero - 2012 CD7C3DBD-3EBA-E011-8C48-005056977FBC R129 AGUA PURIF HOG LOC F94F39E4-7C6B-E011-8C48-005056977FBC因此,你可以看到对于"rutaidname“我有3次"R 197 AGUA PURIF HOG LOC”,所以你可以看到createdon是在2012年2月创建的,我想为这个"rutasidname“选择最后一个,所以,如果这个"rutaidname”有另一个月(一行或更多行),我想要那个月的最后一个行,所以,我需要每个"rutaidname“的行,其中createdon是最后一个,为每个月,每年。例如"R 197 AGUA PURIF HOG LOC“我想要2011年2月的最后一个,”2011年3月“的最后一个母版,”2011年4月“的lsat母版。
发布于 2012-06-19 01:46:21
在我看来,您只需要将MAX日期值按月/年分组,如下未经测试的伪代码:
SELECT
MAX(someDate)
, CAST(YEAR(someDate) AS VARCHAR(4)) + CAST(MONTH(someDate) AS VARCHAR(2)) AS yearAndMonth
FROM
someTable
GROUP BY
CAST(YEAR(someDate) AS VARCHAR(4)) + CAST(MONTH(someDate) AS VARCHAR(2))发布于 2012-06-19 01:43:33
;WITH x AS
(
SELECT d = DATEADD(MONTH, DATEDIFF(MONTH, '19000101', createdon), '19000101'),
rn = ROW_NUMBER() OVER (PARTITION BY DATEDIFF(MONTH, '19000101', createdon)
ORDER BY createdon), -- or ORDER BY createdon DESC, or ORDER BY id DESC
createdon, modifiedon, name, id, mastertableid
FROM dbo.mastertable
)
SELECT d,modifiedon,name,id,mastertableid
FROM x
WHERE rn = 1
ORDER BY d;使用新的需求和实际的表名/列名:
SELECT
createdby, createdbyname
, createdbyyominame, createdon
, createdonutc, createdonbehalfby
, createdonbehalfbyname
, createdonbehalfbyyominame
, importsequencenumber
, modifiedby, modifiedbyname
, modifiedbyyominame, modifiedon
, modifiedonutc
, modifiedonbehalfbyname
, modifiedonbehalfbyyominame
, modifiedonbehalfby
, ope_censoid
, ope_name
, ope_rutasid
, ope_rutasidname
, organizationid
, organizationidname
, overriddencreatedon
, overriddencreatedonutc
, statecode
, statecodename
, StatusCode
, statuscodename
, timezoneruleversionnumber
, utcconversiontimezonecode
FROM
(
SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY ope_rutasidname,
DATEDIFF(MONTH, '19000101', createdon) ORDER BY createdon DESC)
FROM dbo.ope_censo
) AS x
WHERE rn = 1
ORDER BY ope_censoid, modifiedon;https://stackoverflow.com/questions/11088088
复制相似问题