ورود

View Full Version : یک کوئری گیج کننده



sitara24
دوشنبه 26 اردیبهشت 1390, 16:18 عصر
بچه ها من واقعا گیج شدم لطفا کمکم کنید
من 4تا جدول دارم
TESTRESPONSE:
id
questionid
description
(int)responce
QUESTIONS:
id
question
(int)type
RESPONSES:
id
questionid
memberid
selectedchoice
MEMBERS:
id
name
رابطه بین کلیدها هم اینجوریه:
Questions .ID با TestReponse .QuestionID
TestReponse .QuestionID با Responses .QuestionID
Responses .MemberID با Members .ID
باید بگم که تو جدول tetsresponse ستون questionid فیلد تکراری داره.(این جدول مال طرح سوال تستیه.مثلا سوال سه 4 یا 5 گزینه داره که توی ستون description گزینه ها مطرح میشه و طبیتا یکی از اینا درسته که اونیکه پاسخ درسته تو ستون responce جلوش true قرار میگیره و بقیه false)
حالا میخوایم سوالایی(questions.question) هایی رو که فیلد type آنها false هست رو انتخاب کنیم به همراه name از members و گزینه انتخاب شده(selectedchoice) و گزینه های سوال و گزینه صحیح.
خودم چند مدل نوشتم ولی یکیش که کامل تره نمیتونم توش گزینه صحیح رو بیارم .(به جای گزینه صحیح 1 میذاره.)
SELECT Questions .Question , Members .Name ,Responses .SelectedChoiceID ,TestReponse .Description
FROM TestReponse ,Questions ,Responses ,Members
WHERE (Questions .ID =TestReponse .QuestionID
And TestReponse .QuestionID =Responses .QuestionID
And TestReponse .Responce ='True'
And Responses .MemberID =Members .ID
And Questions .Type ='False')

یوسف زالی
سه شنبه 27 اردیبهشت 1390, 13:55 عصر
دوست عزیز جای , از join استفاده کن.
اگه میشه برامscript table ها رو بذار تا تست کنم.
راست کلیک رو اسم table بعد Script table as و create رو بزن برام بذار.
تا ببینم چه کار می تونم کنم.

sitara24
سه شنبه 27 اردیبهشت 1390, 19:56 عصر
http://www.4shared.com/document/Hmewqqy7/testresponse.html
http://www.4shared.com/document/xErSK3DW/responses.html
http://www.4shared.com/document/hepb-cZM/questions.html
http://www.4shared.com/document/_iBi_1ex/members.html
ممنون دوست عزیز.

یوسف زالی
سه شنبه 27 اردیبهشت 1390, 21:31 عصر
دلیل اینکه نمی تونی اینه که طراحی شما اشکال داره.
با این طراحی چاره ای جز Pivot نداری. اونم نصفه نیمه. (سرچ)
جدولهات نرمال نیستند.
اشکال در طراحیه که الان گیر افتادی.

sitara24
چهارشنبه 28 اردیبهشت 1390, 11:53 صبح
چیکار کنم پس؟؟؟؟؟؟؟؟؟؟
تورو خدا کمک کنید.یعنی چه تغییراتی توی جدول هام باید بدم؟اگه راهنمایی کنید ممنون میشم

یوسف زالی
چهارشنبه 28 اردیبهشت 1390, 14:08 عصر
وقت می بره.
اما کمی صبر کن تا ببینم چه می کنم.
فعلا سر کارم!!
:ناراحت:

sitara24
چهارشنبه 28 اردیبهشت 1390, 14:32 عصر
باشه.ممنون.منتظر می مونم

sitara24
چهارشنبه 28 اردیبهشت 1390, 22:58 عصر
اگه یه جدول طراحی کنم که گزینه ها رو هر کدوم جدا توی یک فیلد نگه دارم مشکلم حل میشه؟
ID
QuestionID
Choice
Test1
Test2
Test3
Test4
ISTrue
البته مشکل اینه که ممکنه یه وال بیشتر از 4 گزینه داشته باشه.........

Galawij
پنج شنبه 29 اردیبهشت 1390, 09:40 صبح
می شه خود سیستمی را که دارید براش برنامه می نویسید توضیح بدید تا تو تحلیلش راهنمایی کنیم...

یوسف زالی
پنج شنبه 29 اردیبهشت 1390, 10:19 صبح
اینم طراحی من:



CREATE TABLE [dbo].[Members](
[ID] [int] identity (1, 1) NOT NULL,
[Name] [nvarchar](150) NULL,
[SateID] [int] NULL,
[City] [nvarchar](100) NULL,
[Address] [ntext] NULL,
[PostalCode] [nvarchar](10) NULL,
[Email] [nvarchar](50) NULL,
[tel] [nvarchar](50) NULL,
[Mobile] [nvarchar](50) NULL,
[Description] [ntext] NULL,
[Password] [nvarchar](50) NULL,
[DateTime] [datetime] NULL,
CONSTRAINT [PK_Customers] 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] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[QuestionDad](
[QuizID] [int] IDENTITY(1,1) NOT NULL,
[QTitleDad] [varchar](100) NOT NULL,
[QTimeLongDad] [int] NOT NULL,
[QStartDad] [char](8) NOT NULL,
[QEndDad] [char](8) NOT NULL,
[QCreateionTimeDad] [char](8) NOT NULL,
[QStatusDad] [int] NOT NULL,
[QDescriptionDad] [varchar](500) NULL,
CONSTRAINT [PK_QuestionDad] PRIMARY KEY CLUSTERED
(
[QuizID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[QuestionBaby](
[AskID] [int] IDENTITY(1,1) NOT NULL,
[ANumberBaby] [int] NOT NULL,
[AQuizIDBaby] [int] NOT NULL,
[ATitleBaby] [varchar](500) NOT NULL,
[ASelect1Baby] [varchar](500) NULL,
[ASelect2Baby] [varchar](500) NULL,
[ASelect3Baby] [varchar](500) NULL,
[ASelect4Baby] [varchar](500) NULL,
[ASelect5Baby] [varchar](500) NULL,
[ASelect6Baby] [varchar](500) NULL,
[ASelect7Baby] [varchar](500) NULL,
[ASelect8Baby] [varchar](500) NULL,
[AAnswerIDBaby] [int] NOT NULL,
[AAnswerDescriptionBaby] [varchar](max) NULL,
CONSTRAINT [PK_QuestionBaby] PRIMARY KEY CLUSTERED
(
[AskID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[MemberSelects](
[DetailID] [int] IDENTITY(1,1) NOT NULL,
[DMemberID] [int] NOT NULL,
[DQuizId] [int] NOT NULL,
[DAskId] [int] NOT NULL,
[DAnswered] [int] NOT NULL,
[DDescription] [varchar](500) NULL,
CONSTRAINT [PK_MemberSelects] PRIMARY KEY CLUSTERED
(
[DetailID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO



نتیجه:
70092
70091

sitara24
جمعه 30 اردیبهشت 1390, 18:41 عصر
خیلی ممنونم.الان طراحیتون رو دیدم.پیاده سازیش که کردم میام دوباره تا بگم چی شد.

sitara24
شنبه 31 اردیبهشت 1390, 12:08 عصر
ممنون دوست عزیز.یه دنیا ممنون.مشکلم کاملا حل شد.