سلام
من این کوئری که pivot هست رو توی اکسس نوشتم و جوابهم گرفتم حالا همون داخل اکسس خروجی sql گرفتم اما اجرا که میکنم تو sql خطا میده کسی میتونه اینو برام تبدیل کنه که تو sql کار کنه
TRANSFORM First(OptionQues.Title) AS Expr1 SELECT First(Customers.FirstName) AS FirstOfFirstName, First(Provinces.Title) AS FirstOfTitle5, First(Cities.Title) AS FirstOfTitle4, First(OptionQues.Title) AS FirstOfTitle2, First(Polls.Title) AS FirstOfTitle1, First(LablePolls.Title) AS FirstOfTitle, First(Answers.CommentText) AS FirstOfCommentText FROM ((((((Answers INNER JOIN Customers ON Answers.CustomerId = Customers.Id) INNER JOIN LablePolls ON Customers.LableId = LablePolls.Id) INNER JOIN Provinces ON Customers.StateId = Provinces.Id) INNER JOIN Cities ON Customers.CityId = Cities.Id) INNER JOIN Questions ON Answers.QueId = Questions.Id) INNER JOIN Polls ON Answers.PollId = Polls.Id) INNER JOIN OptionQues ON Answers.OptionId = OptionQues.Id GROUP BY Customers.Id PIVOT Questions.Title;
TRANSFORM First(optionques.title) AS expr1 SELECT First(customers.firstname) AS FirstOfFirstName, First(provinces.title) AS FirstOfTitle5, First(cities.title) AS FirstOfTitle4, First(optionques.title) AS FirstOfTitle2, First(polls.title) AS FirstOfTitle1, First(lablepolls.title) AS FirstOfTitle, First(answers.commenttext) AS FirstOfCommentText FROM ((((((answers INNER JOIN customers ON answers.customerid = customers.id) INNER JOIN lablepolls ON customers.lableid = lablepolls.id) INNER JOIN provinces ON customers.stateid = provinces.id) INNER JOIN cities ON customers.cityid = cities.id) INNER JOIN questions ON answers.queid = questions.id) INNER JOIN polls ON answers.pollid = polls.id) INNER JOIN optionques ON answers.optionid = optionques.id GROUP BY customers.id PIVOT questions.title;
از سایت زیر استفاده کردم
نحوه نوشتن pivot
SELECT @QuestionList = STUFF( (SELECT ', ' + quotename(Questions.Title) FROM Questions GROUP BY Questions.Title ORDER BY Questions.Title FOR XML PATH('')) , 1, 2, ''); SET @qry =N' SELECT * FROM (SELECT Customers.SId As [کد اشتراک], Customers.FirstName As [نام], Customers.LastName As [نام خانوادگی],Customers.Phone As [تلفن], Customers.Mobile As [موبایل], Provinces.Title As [استان],Cities.Title As [شهر], Customers.ModelName As [نام مدل], Customers.RatePlan, Customers.ActivationDate As [تاریخ فعالیت], Polls.Title As [نام نظرسنجی], Polls.CreateDate As [تاریخ ایجاد], LablePolls.Title As [وضعیت تماس], Answers.CommentText As [توضیحات], Questions.Title AS Expr1, OptionQues.Title AS Expr5 FROM Answers INNER JOIN Customers ON Answers.CustomerId = Customers.Id INNER JOIN Polls ON Answers.PollId = Polls.Id AND Customers.PollId = Polls.Id INNER JOIN Questions ON Answers.QueId = Questions.Id INNER JOIN LablePolls ON Customers.LableId = LablePolls.Id INNER JOIN Provinces ON Customers.StateId = Provinces.Id INNER JOIN Cities ON Customers.CityId = Cities.Id INNER JOIN OptionQues ON Answers.OptionId = OptionQues.Id Where Answers.PollId= ' + @polids + ' )ps PIVOT (Max(Expr5) FOR Expr1 IN (' + @QuestionList + ')) As pvt '; exec sp_executesql @qry;
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)