กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

Re: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

by nungs » 21/11/2010 9:15 pm

query table with dist type -> ได้ type
query type -> สี

Re: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

by jinky153 » 30/06/2010 12:07 am

ถ้าท่านใดมีวิธีที่ง่ายกว่านี้รบกวนบอกทีนะครับ

Re: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

by jinky153 » 30/06/2010 12:06 am

DECLARE @SQLCMD VARCHAR(MAX)

IF OBJECT_ID('View2') IS NOT NULL
BEGIN
DROP VIEW View2
END
SET @SQLCMD = 'CREATE VIEW View2 AS
SELECT DISTINCT Color
FROM Table1'
EXECUTE(@SQLCMD)


DECLARE @PivotColumnHeaders VARCHAR(MAX)
SELECT @PivotColumnHeaders =
COALESCE(
@PivotColumnHeaders + ',[' + cast(Color as varchar) + ']',
'[' + cast(Color as varchar)+ ']'
)
FROM View2

IF OBJECT_ID('View3') IS NOT NULL
BEGIN
DROP VIEW View3
END
SET @SQLCMD = '
CREATE VIEW View3 AS SELECT Type_,'+ @PivotColumnHeaders +' FROM Table1
PIVOT (COUNT(Color)
FOR Color IN('+ @PivotColumnHeaders +'))
AS P'
EXECUTE(@SQLCMD)

DECLARE @test VARCHAR(MAX)
SELECT @test =
COALESCE(
@test + ',SUM(' + cast(Color as varchar) + ') ' + cast(Color as varchar),
'SUM(' + cast(Color as varchar)+ ') ' + cast(Color as varchar)
)
FROM View2

SET @SQLCMD = '
SELECT Type_,'+ @test +' FROM View3
GROUP BY Type_'

EXECUTE(@SQLCMD)

Re: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

by imsn » 29/06/2010 7:55 pm

เขียนไปไงครับ แชร์กันหน่อย

Re: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

by jinky153 » 29/06/2010 6:52 pm

ใช้ Mssql ครับ
ตอนนี้แก้ปัญหาได้แล้วครับ
ใช้ DECLARE @string VARCHAR(MAX) เอาครับ
แล้วทำเป็น Dynamic Pivot

Re: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

by imsn » 27/06/2010 8:30 pm

ใช้ Mssql กับ php หรือเปล่าครับ

Re: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

by jinky153 » 26/06/2010 9:38 pm

รบกวนบอกทีว่าเขียนอย่างไรดีครับ ถ้า query ชื่อสีทั้งหมดมาแล้วจะมาใส่ในชื่อสี
sum(CASE Color WHEN 'ชื่อสี' THEN 1 ELSE 0 END) ชื่อสี
ต้องเขียนอย่างไรครับเรื่อง dynamic นี่ผมไม่รู้เรื่องเลยครับ

Re: กูรู SQL ช่วยทีครับ(query case ซับซ้อน)

by imsn » 26/06/2010 3:36 pm

query สองครั้งก็ได้ครับ
ครั้งแรก เอา ชื่อสีมาทั้งหมด
แล้วใส่ ใน CASE ... เอา

Top