0
اجرا کوئری با شرط خاص
سلام
فرض کنید جدول زیر را داریم
CREATE TABLE [dbo].[test1]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Date] [Date] NULL, [Type] [nvarchar](50) NULL, [Time] [Time](7) NULL, CONSTRAINT [PK_test1] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] INSERT INTO [dbo].[test1] VALUES ( 'ali','2017-07-23','a','10:20') INSERT INTO [dbo].[test1] VALUES ( 'ali','2017-07-23','b','10:45') INSERT INTO [dbo].[test1] VALUES ( 'ali','2017-07-23','c','17:20') INSERT INTO [dbo].[test1] VALUES ( 'ali','2017-07-23','d','17:35') INSERT INTO [dbo].[test1] VALUES ( 'reza','2017-07-23','d','10:20') INSERT INTO [dbo].[test1] VALUES ( 'reza','2017-07-23','a','10:45') INSERT INTO [dbo].[test1] VALUES ( 'reza','2017-07-23','b','17:20') INSERT INTO [dbo].[test1] VALUES ( 'reza','2017-07-23','c','17:35') INSERT INTO [dbo].[test1] VALUES ( 'reza','2017-07-23','d','10:20') INSERT INTO [dbo].[test1] VALUES ( 'reza','2017-07-23','b','10:45') INSERT INTO [dbo].[test1] VALUES ( 'hasan','2017-07-23','c','17:20') INSERT INTO [dbo].[test1] VALUES ( 'hasan','2017-07-23','d','17:35') INSERT INTO [dbo].[test1] VALUES ( 'hasan','2017-07-23','a','10:20') INSERT INTO [dbo].[test1] VALUES ( 'hasan','2017-07-23','b','10:45') INSERT INTO [dbo].[test1] VALUES ( 'hasan','2017-07-23','c','17:20') INSERT INTO [dbo].[test1] VALUES ( 'hasan','2017-07-23','d','17:35')
حال دستوری می خواهم بنویسم که براساس نام وتاریخ باشد و شرط دیگر ان اینگونه باشد
که تفاضل زمان a,b بیشتر از 20 دقیقه باشد(و یا تفاضل زمان c,d بیشتر از 20 دقیقه باشد)
چگونه باید این دستور را بنویسم
باتشکر
3 پاسخ
0
سلام
a مثلا نام شخصی است
بله با یک تاریخ خاص گزارش بگیرم
2
با سلام
کوئری اول بر استس یک تاریخ مشخص :
/*کوئری اول بر اساس یک تاریخ مشخص*/ SELECT TOP 1000 [ID] ,[Name] ,[Date] ,[Type] ,[Time] FROM [db-itpro].[dbo].[test1] where [Date]='2017-07-23'
کوئری دوم بین دو تاریخ مشخص :
/*کوئری دوم بر اساس دو تاریخ مشخص*/ SELECT TOP 1000 [ID] ,[Name] ,[Date] ,[Type] ,[Time] FROM [db-itpro].[dbo].[test1] where [Date] between '2017-07-20' and '2017-07-30' /*از بیستم تا سی ام رو در نظر گرفتیم*/
کوئری سوم :
/*کوئری سوم بر اساس نام و تاریخ*/ SELECT TOP 1000 [ID] ,[Name] ,[Date] ,[Type] ,[Time] FROM [db-itpro].[dbo].[test1] where [Date]='2017-07-23' and Name=N'ali'
کوئری چهارم :
با استفاده از این تابع می تونید ابتدا واحد مقایسه ساع و تاریخ و و مشخص کنید و ارگومان دوم و سدوم به ترتیب ساعت اول و ساعت دوم هستند که باید تفاضلشان محاسبه شود :
select DATEDIFF(MINUTE,'10:20','10:40')
0
سلام و عرض ادب، منظورتون از تاریخ a و b چیه؟ میخوایید تاریخ داخل جدول رو با یک تاریخ دلخواه کوئری بگیرید؟