【发布时间】:2015-07-22 12:50:58
【问题描述】:
我对必须在 SQL Server 中添加的 MS Access 中的两个 SQL 查询感到有些困惑。
我想写一个存储过程,但是不知道如何组合这两个sql查询。
这是第一个MaxMonthDate:
SELECT Max(Day([Datum])) AS DayMax,
Month([Datum]) AS MonthMax,
Year([Datum]) AS YearMax,
DateSerial([YearMax],[MonthMax],[DayMax]) AS DatumMax
FROM DS
WHERE (((DS.Datum)>=[Formulare]![Hauptmenü]![Startdatum] And (DS.Datum)<=[Formulare]![Hauptmenü]![Enddatum]))
GROUP BY Month([Datum]), Year([Datum]);
第二个查询MaxMonthVal:
SELECT DS.*
FROM MaxMonthDate INNER JOIN DS ON MaxMonthDate.DatumMax = DS.Datum
ORDER BY DS.Datum;
谁能告诉我如何将这些组合到一个查询中?
【问题讨论】:
-
如果返回列应该相同,那么您可以使用“union all”
-
请说明所需的输出是什么。您可以联合/联合所有来组合两个查询的输出,但它们应该返回相同的列。
-
@AbhayChauhan 第一个查询返回该月的最后一天,例如当我尝试 @from = '2014-01-01', @to = '2014-05-31' 然后它是返回
2014-01-31、2014-02-28、2014-03-31...等等。第二个查询返回这几天的所有列。 -
@MukeshKalgude 我该如何结合这个?可以举个例子吗?
-
@yuro 第二个查询返回的数据是需要的输出吗?如果是这种情况,那么您可以使用第一个查询作为子查询来过滤表 DS 中的数据。让我知道这是否是您要查找的内容,以便我提供示例查询。
标签: sql sql-server ms-access stored-procedures