مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

عطایی

عضویت از 1392/05/14

تبدیل کوئری

  • یکشنبه 22 آذر 1394
  • 15:40
تشکر میکنم

سلام

من این کوئری که 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;

 

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 22 آذر 1394
  • 16:30
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;  

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 22 آذر 1394
  • 16:31

از سایت زیر استفاده کردم

تبدیل query access به sql

کاربر سایت

عطایی

عضویت از 1392/05/14

  • دوشنبه 30 آذر 1394
  • 15:56

نحوه نوشتن 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;

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)