MDX , Total All members summary problem
บทความนี้ขอกล่าวถึง Measurement Summary ในระบบ OLAP ซึ่งมีประโยชน์มากๆ
ในกรณีที่หน่วยงานมีการแบ่งส่วนการดูแลข้อมูล / ลูกค้า / ยอดขายต่าง ๆ แล้ว หากมีการสร้าง Roles ขึ้นมาควบคุมการเข้าถึงข้อมูลแล้ว อาจเคยเจอปัญหาเรื่องยอดรวมเป็นยอดรวมของทั้งหมด แทนที่จะเป็นยอดรวมของลูกค้าที่ดูแล เป็นต้น
ได้ค้นหาข้อมูลจนได้พบว่า จริงๆ แล้วใน Role ที่สร้างขึ้นในส่วนการจำกัดสิทธิ์ (Dimension data) นั้นใน Advance tab นั้นมี Option ให้เลือกซึ่งไม่ได้ Default ไว้ให้ นั่นคือ "Enable Visual Totals" ซึ่งเป็น Option ที่จะคำนวนยอดรวมเฉพาะข้อมูลที่ User มีสิทธิ์เข้าถึงได้เท่านั้น ซึ่งจริง ๆ แล้วตามหลักการควรจะต้อง Enable option นี้เสมอเมื่อมีการสร้าง Roles ขึ้นมา (อันนี้ขึ้นอยู่กับจุดประสงค์การใช้งาน)
How to set / enable Visual Total in OLAP Roles.
To be continue....
Ref . http://blogs.microsoft.co.il/blogs/barbaro/archive/2008/02/06/visual-totals-in-mdx-and-role-security.aspx
Mssql, Microsoft sql server, SSAS, SSRS ,SSIS , Analysis Service, Reporting Service, Integration Service, XMLA ,MDX ,SQL
วันจันทร์ที่ 5 กรกฎาคม พ.ศ. 2553
วันจันทร์ที่ 14 มิถุนายน พ.ศ. 2553
SQL Server view table size,index size
How to view Table size , index size
View/show rows in table with out select
Use "sp_spaceused"
Use myDB
GO
sp_spaceused "trans"
GO
How to view database information in SQL Server
วันพุธที่ 9 มิถุนายน พ.ศ. 2553
SQL Server database collation
ความแตกต่างของ Database Collation
Thai_CI_AI คือ Language ภาษาไทย
CI = Case Insensitive
AI = Accent Insensitive
ต่างกับ Thai_CI_AS คือ
AS = Accent Sensitive
แนะนำใช้ Thai_CI_AI เพราะ Thai_CI_AS จะมีปัญหาเกี่ยวกับภาษาไทยเรื่องของตัวการันต์
เช่นหากเราเขียน QUERY
SELECT * FROM customer WHERE Name LIKE 'พิมพ%'
หาก Collation เป็น Thai_CI_AS คนที่ชื่อ พิมพ์ใจ จะไม่ออกมาตามที่ควรจะเป็นครับ
นอกจากนั้นแล้ว Column ใน Table ก็มี Collation ของตัวเองอีกด้วย
ดังนั้นตอน Install Server หรือ Create Database ควรต้องระวังเรื่องนี้ด้วยครับ
Thai_CI_AI คือ Language ภาษาไทย
CI = Case Insensitive
AI = Accent Insensitive
ต่างกับ Thai_CI_AS คือ
AS = Accent Sensitive
แนะนำใช้ Thai_CI_AI เพราะ Thai_CI_AS จะมีปัญหาเกี่ยวกับภาษาไทยเรื่องของตัวการันต์
เช่นหากเราเขียน QUERY
SELECT * FROM customer WHERE Name LIKE 'พิมพ%'
หาก Collation เป็น Thai_CI_AS คนที่ชื่อ พิมพ์ใจ จะไม่ออกมาตามที่ควรจะเป็นครับ
นอกจากนั้นแล้ว Column ใน Table ก็มี Collation ของตัวเองอีกด้วย
ดังนั้นตอน Install Server หรือ Create Database ควรต้องระวังเรื่องนี้ด้วยครับ
วันอังคารที่ 4 พฤษภาคม พ.ศ. 2553
Reporting Service (SSRS) , Subscription Locale
เรื่อง ภาษาของเครื่อง ณ เวลาที่ทำ Reports Subscription
มีความรู้เล็ก ๆ น้อย ๆ มาฝากเกี่ยวกับภาษาของเครื่อง ในตอนที่เราทำ Subscription ครับ
หากรายงานของเรามี parameter ที่เป็นวันที่แล้วต้องการให้มี default เป็นช่วงเวลาที่กำหนด
อย่างของผม กำหนดให้เป็นวันที่ 1 - สิ้นเดือนของเดือนที่ผ่านมา สามารถทำได้ครับ
โดยการเขียน Script ในตัว parameter ของรายงาน แต่เมื่อทำ Subscription โดยให้ User สามารถ
ทำเองได้ ปรากฏว่าเจอปัญหาที่ทำเอางงไปครึ่งวันกว่าจะหาเจอว่าเป็นเพราะอะไร
ปัญหาคือ วันที่ที่ได้เขียน Script ไว้เกิดเพี้ยน ไม่เป็นไปตามรูปแบบที่ต้องการ ทำให้รายงานรันผิด
ได้พยายามหาสาเหตุอยู่นาน แล้วก็ได้เจอครับ โดยเปิด Database ของ Reporting ขึ้นมาแล้ว
Select ดูจาก table subscriptions ทำให้เห็นความแตกต่างของฟิลด์ ๆ นึงคือ Field "Locale" ครับ
ซึ่งตัวนี้เองเป็นตัวที่กำหนดรูปแบบของวันที่ในรายงานที่ทำ Subscription ผมจึงจัดการ update
โดยใช้ SQL ธรรมดากันเลยครับ ไม่งั้นต้องมานั่งทำใหม่ใช้เวลานานมาก
SQL script for update locale
UPDATE Subscriptions
set locale ='en-US'
WHERE locale = 'th-TH'
เท่านี้เป็นอันเรียบร้อยสบายตัวไป ^ ^
มีความรู้เล็ก ๆ น้อย ๆ มาฝากเกี่ยวกับภาษาของเครื่อง ในตอนที่เราทำ Subscription ครับ
หากรายงานของเรามี parameter ที่เป็นวันที่แล้วต้องการให้มี default เป็นช่วงเวลาที่กำหนด
อย่างของผม กำหนดให้เป็นวันที่ 1 - สิ้นเดือนของเดือนที่ผ่านมา สามารถทำได้ครับ
โดยการเขียน Script ในตัว parameter ของรายงาน แต่เมื่อทำ Subscription โดยให้ User สามารถ
ทำเองได้ ปรากฏว่าเจอปัญหาที่ทำเอางงไปครึ่งวันกว่าจะหาเจอว่าเป็นเพราะอะไร
ปัญหาคือ วันที่ที่ได้เขียน Script ไว้เกิดเพี้ยน ไม่เป็นไปตามรูปแบบที่ต้องการ ทำให้รายงานรันผิด
ได้พยายามหาสาเหตุอยู่นาน แล้วก็ได้เจอครับ โดยเปิด Database ของ Reporting ขึ้นมาแล้ว
Select ดูจาก table subscriptions ทำให้เห็นความแตกต่างของฟิลด์ ๆ นึงคือ Field "Locale" ครับ
ซึ่งตัวนี้เองเป็นตัวที่กำหนดรูปแบบของวันที่ในรายงานที่ทำ Subscription ผมจึงจัดการ update
โดยใช้ SQL ธรรมดากันเลยครับ ไม่งั้นต้องมานั่งทำใหม่ใช้เวลานานมาก
SQL script for update locale
UPDATE Subscriptions
set locale ='en-US'
WHERE locale = 'th-TH'
เท่านี้เป็นอันเรียบร้อยสบายตัวไป ^ ^
วันพุธที่ 28 เมษายน พ.ศ. 2553
Reporting Service (SSRS) , Date format problem in parameter
ปัญหาเรื่องรูปแบบวันที่ใน Parameter ของ Reporting service
จากปัญหาที่พบในเครื่องของ User คือ รูปแบบของวันที่แตกต่างจากที่กำหนดไว้ใน Report
เช่นใน Report กำหนดเป็น mm/dd/yyyy แต่เครื่อง User เป็นแบบ dd/mm/yyyy ทำให้รายงานเกิด Error
ปัญหานี้เกิดขึ้นเนื่องมาจากการ Setting ค่าใน Internet Options ครับให้ดูตามรูปตัวอย่าง
เลือก วันที่จาก Calendar
ค่าที่ได้จากการเลือกวันที่
หากมีการจัดลำดับให้ ภาษาไทยอยู่ก่อน English
จะได้รูปแบบวันที่ที่เปลี่ยนไปตามนี้ จะเห็นว่าจาก 4/28/2010 จะกลายเป็น 28/4/2010
จากปัญหาที่พบในเครื่องของ User คือ รูปแบบของวันที่แตกต่างจากที่กำหนดไว้ใน Report
เช่นใน Report กำหนดเป็น mm/dd/yyyy แต่เครื่อง User เป็นแบบ dd/mm/yyyy ทำให้รายงานเกิด Error
ปัญหานี้เกิดขึ้นเนื่องมาจากการ Setting ค่าใน Internet Options ครับให้ดูตามรูปตัวอย่าง
เลือก วันที่จาก Calendar
ค่าที่ได้จากการเลือกวันที่
จะได้รูปแบบวันที่ที่เปลี่ยนไปตามนี้ จะเห็นว่าจาก 4/28/2010 จะกลายเป็น 28/4/2010
สมัครสมาชิก:
ความคิดเห็น (Atom)



