MDX Query syntax for "NOT IN" or "Except" condition
มีทริ๊กเล็ก เกี่ยวกับการใช้ MDX ในการ Selelect ข้อมูลให้ได้ตามต้องการ ในที่นี้หากเทียบกับใน SQL
แล้วก็คือการใช้ IN หรือ NOT IN นั่นเอง
ตัวอย่าง MDX สำหรับ Condition NOT IN : Using AdventureWork
---------------Normal condition -------------------
ตัวอย่าง Query สำหรับการเรียกดูยอดขายของสินค้าทุกประเภท
SELECT [Measures].[Sales Amount] on 0,
[Product].[Category].[Category] ON 1
FROM [Adventure Works]
Result
Sales Amount
Accessories $1,272,057.89
Bikes $94,620,526.21
Clothing $2,117,613.45
Components $11,799,076.66
-------- EXCEPT or NOT IN condition ---------
SELECT [Measures].[Sales Amount] on 0,
-{[Product].[Category].&[1],[Product].[Category].&[4]} on 1
FROM [Adventure Works]
Result
Sales Amount
Clothing $2,117,613.45
Components $11,799,076.66
จากตัวอย่างจะเห็นว่าผลลัพธ์เหลือแค่ 2 rows คือ Clothing และ Component
Categories ที่หายไปคือ Accessories และ Bikes ซึ่งเกิดจากการที่เราได้ใส่ Except / Not in
เข้าไปใน Query นั่นเอง ซึ่งรูปแบบคือ -{member set}
Mssql, Microsoft sql server, SSAS, SSRS ,SSIS , Analysis Service, Reporting Service, Integration Service, XMLA ,MDX ,SQL
วันศุกร์ที่ 2 เมษายน พ.ศ. 2553
วันอังคารที่ 30 มีนาคม พ.ศ. 2553
การพิมพ์ Label จาก Crystal report
การกำหนดขนาดกระดาษสำหรับ Print Label ใน Crystal report
การพิมพ์ Label จาก Crystal report โดยใช้กระดาษต่อเนื่องที่มีขนาดเล็กนั้นอาจมีปัญหาว่า
สร้าง Form กระดาษให้ตรงตามจริงแล้ว ตอนสั่งพิมพ์ไม่สามารถเลือกฟอร์มกระดาษที่กำหนดขึ้นได้
กรณีที่เคยพบคือ ใช้เครื่องพิมพ์ EPSON LQ 2180i พิมพ์ Label แปะซองจดหมายถึงลูกค้า แต่ขนาดของ
Label มีขนาด Width : 11 cm และ Height : 3.5 cm ซึ่งเครื่องขนาดของฟอร์มกระดาษเล็กกว่าขนาดที่
เล็กที่สุดที่เครื่องพิมพ์รองรับทำให้เครื่อง Printer ไม่สามารถ Detect เจอ size กระดาษนั้นได้
จึงได้โทรไปสอบถามทาง Epson ถึงวิธีการแก้ไข จึงได้ทราบวิธีที่ง่ายมาก คือเพียงแต่เปลี่ยนไปใช้
Driver ของเครื่องพิมพ์รุ่นที่เก่ากว่า ก็จะทำให้สามารถสั่งพิมพ์ลงใน Form ที่มี ขนาดเล็กได้ แค่นี้เองครับ
ตัวอย่าง เครื่องพิมพ Epson LQ 2180i แทนที่จะใช้ Driver ของรุ่นนี้แต่เปลี่ยนไปใช้ Driver รุ่น
LQ-1170 ESC/P 2 แทน หวังว่า Blog นี้จะช่วยแก้ปัญหาให้หลาย ๆ ท่านได้ครับ
การพิมพ์ Label จาก Crystal report โดยใช้กระดาษต่อเนื่องที่มีขนาดเล็กนั้นอาจมีปัญหาว่า
สร้าง Form กระดาษให้ตรงตามจริงแล้ว ตอนสั่งพิมพ์ไม่สามารถเลือกฟอร์มกระดาษที่กำหนดขึ้นได้
กรณีที่เคยพบคือ ใช้เครื่องพิมพ์ EPSON LQ 2180i พิมพ์ Label แปะซองจดหมายถึงลูกค้า แต่ขนาดของ
Label มีขนาด Width : 11 cm และ Height : 3.5 cm ซึ่งเครื่องขนาดของฟอร์มกระดาษเล็กกว่าขนาดที่
เล็กที่สุดที่เครื่องพิมพ์รองรับทำให้เครื่อง Printer ไม่สามารถ Detect เจอ size กระดาษนั้นได้
จึงได้โทรไปสอบถามทาง Epson ถึงวิธีการแก้ไข จึงได้ทราบวิธีที่ง่ายมาก คือเพียงแต่เปลี่ยนไปใช้
Driver ของเครื่องพิมพ์รุ่นที่เก่ากว่า ก็จะทำให้สามารถสั่งพิมพ์ลงใน Form ที่มี ขนาดเล็กได้ แค่นี้เองครับ
ตัวอย่าง เครื่องพิมพ Epson LQ 2180i แทนที่จะใช้ Driver ของรุ่นนี้แต่เปลี่ยนไปใช้ Driver รุ่น
LQ-1170 ESC/P 2 แทน หวังว่า Blog นี้จะช่วยแก้ปัญหาให้หลาย ๆ ท่านได้ครับ
วันจันทร์ที่ 22 มีนาคม พ.ศ. 2553
Internal Error 2755. 1612, Microsoft Visual Studio 2005 SP 1
This error issued when your windows securities is not update
You need to download update for windows Download Here
You need to download update for windows Download Here
วันพฤหัสบดีที่ 18 มีนาคม พ.ศ. 2553
การใช้ SUB Query ใน SQL Command
Sub query คือ การดึงข้อมูลออกเป็นตารางเสมือน ตามเงื่อนไขที่ต้องการเพื่อจุดประสงค์ที่ต้องการ
ซึ่งต้องใช้ ( ) ในการ scope
ตัวอย่างการใช้งาน SUB Query
SELECT a.*
FROM (
SELECT emp_id,emp_name
FROM employee
WHERE emp_id >= '100111'
) as a
จากตัวอย่างหมายความว่า เลือกข้อมูลทั้งหมดจากตารางที่มี Alias "a" ซึ่งเป็น Sub query จากการ
Select ข้อมูลจากตาราง employee ที่มี emp_id >= '100111'
ซึ่งต้องใช้ ( ) ในการ scope
ตัวอย่างการใช้งาน SUB Query
SELECT a.*
FROM (
SELECT emp_id,emp_name
FROM employee
WHERE emp_id >= '100111'
) as a
จากตัวอย่างหมายความว่า เลือกข้อมูลทั้งหมดจากตารางที่มี Alias "a" ซึ่งเป็น Sub query จากการ
Select ข้อมูลจากตาราง employee ที่มี emp_id >= '100111'
การใช้คำสั่ง IN ใน SQL command
คำสั่ง IN ใน Sql หมายถึงการกรองข้อมูลด้วย column โดยที่ค่าที่ต้องการกรองมีได้มากกว่า 1 ค่า ซึ่งแตกต่างจากการใช้เครื่องหมายเท่ากับ ("=") และค่าที่ใช้กรองจะต้องอยู่ภายในวงเล็บ
ตัวอย่าง
SELECT *
FROM employee
WHERE emp_id IN ('100234','100235','100236')
ความหมายของ Query นี้คือ การเลือกพนักงานที่มีรหัสตามที่ระบุนั่นเอง ซึ่งผลลัพธ์จะได้ 3 Records
ตัวอย่าง
SELECT *
FROM employee
WHERE emp_id IN ('100234','100235','100236')
ความหมายของ Query นี้คือ การเลือกพนักงานที่มีรหัสตามที่ระบุนั่นเอง ซึ่งผลลัพธ์จะได้ 3 Records
สมัครสมาชิก:
บทความ (Atom)