今日など、特定の日に入力されたすべてのレコードを取得したい:
ALTER PROCEDURE [dbo].[SP_GET_QUEUESINFO_BY_DATE]
@date nvarchar = '2012-09-21'
AS
BEGIN
declare @dateStart nvarchar(50) = @date + ' 00:00:00.0'
declare @dateEnd nvarchar(50) = @date + ' 23:59:59.437';
declare @returnData table (allQueue int,inQueue int,outQueue int)
SELECT 'table1' as table_name, COUNT(*)
FROM Queue as Counts
UNION ALL
SELECT 'table2' as table_name,COUNT(*) FROM Queue as Counts
WHERE QueueDate BETWEEN @dateStart AND @dateEnd
AND QueueNumIn != 0
END
編集済み: コードを編集しましたが、機能するようになりました:
ALTER PROCEDURE [dbo].[SP_GET_QUEUESINFO_BY_DATE]
AS
BEGIN
declare @date2 datetime
set @date2= '2012-09-21'
SELECT 'AllQueue' as table_name, COUNT(*)
FROM Queue as sdfds
UNION ALL
SELECT 'InQueue' as table_name,COUNT(*)
FROM Queue as sdfds
WHERE QueueDate >=@date2
AND QueueNumIn != 0
UNION ALL
SELECT 'OutQueue' as table_name, COUNT(*) FROM Queue as sdfds
WHERE QueueDate >=@date2
AND QueueNumOut != 0
END
次の 3 つのレコードが返されます。
1 つの問題は、2 番目の列に名前がないことです。なんで?また、2 つのフィールドを持つ 3 つの個別のレコードではなく、3 つの行を持つ 1 つのレコードのみを返したいと考えています。