คำถามติดแท็ก pivot

3
Pivot แถวในหลายคอลัมน์
ฉันมีอินสแตนซ์ SQL Server ที่มีเซิร์ฟเวอร์ที่เชื่อมโยงกับเซิร์ฟเวอร์ Oracle มีตารางบนเซิร์ฟเวอร์ Oracle ที่เรียกว่าPersonOptionsซึ่งมีข้อมูลต่อไปนี้: ╔══════════╦══════════╗ ║ PersonID ║ OptionID ║ ╠══════════╬══════════╣ ║ 1 ║ A ║ ║ 1 ║ B ║ ║ 2 ║ C ║ ║ 3 ║ B ║ ║ 4 ║ A ║ ║ 4 ║ C ║ ╚══════════╩══════════╝ ฉันต้องหมุนข้อมูลนั้นเพื่อผลลัพธ์คือ: ╔══════════╦═════════╦══════════╦══════════╗ ║ PersonID …

3
กำหนดช่วงแบบไดนามิกในมิติข้อมูล
ฉันมีปัญหาที่ฉันเผชิญทุกครั้งที่ฉันตัดสินใจที่จะสร้างคิวบ์และฉันยังไม่พบวิธีที่จะเอาชนะมันได้ ปัญหาคือวิธีการอนุญาตให้ผู้ใช้กำหนดช่วงของสิ่งต่าง ๆ โดยอัตโนมัติโดยไม่จำเป็นต้อง hardcode พวกเขาในมิติ ฉันจะอธิบายปัญหาของฉันในตัวอย่าง ฉันมีตารางชื่อลูกค้า : นี่คือข้อมูลในตาราง: ฉันต้องการแสดงข้อมูลในรูปแบบ pivot และจัดกลุ่มเงินเดือนและอายุในช่วงที่กำหนดดังนี้: ฉันเขียนสคริปต์นี้และกำหนดช่วง: SELECT [CustId] ,[CustName] ,[Age] ,[Salary] ,[SalaryRange] = case when cast(salary as float) <= 500 then '0 - 500' when cast(salary as float) between 501 and 1000 then '501 - 1000' when cast(salary as float) between 1001 …

4
ฉันจะสร้าง CROSS JOIN ที่หมุนได้ได้อย่างไรโดยที่ไม่ทราบนิยามของตารางที่ได้
เมื่อกำหนดสองตารางที่มีจำนวนแถวที่ไม่ได้กำหนดด้วยชื่อและค่าฉันจะแสดงCROSS JOINฟังก์ชันที่มีเครื่องหมายทับค่าของพวกมันได้อย่างไร CREATE TEMP TABLE foo AS SELECT x::text AS name, x::int FROM generate_series(1,10) AS t(x); CREATE TEMP TABLE bar AS SELECT x::text AS name, x::int FROM generate_series(1,5) AS t(x); ตัวอย่างเช่นถ้าฟังก์ชันนั้นเป็นการคูณฉันจะสร้างตาราง (การคูณ) เช่นเดียวกับด้านล่างได้อย่างไร (arg1,arg2,result)แถวเหล่านั้นทั้งหมดสามารถสร้างขึ้นได้ด้วย SELECT foo.name AS arg1, bar.name AS arg2, foo.x*bar.x AS result FROM foo CROSS JOIN bar; ดังนั้นนี่เป็นเพียงคำถามของงานนำเสนอฉันต้องการสิ่งนี้เพื่อทำงานกับชื่อที่กำหนดเอง …

3
ส่งคืนคอลัมน์ต่อวันในช่วง
สมมติว่าฉันมีตาราง A: BookingsPerPerson Person_Id ArrivalDate DepartureDate 123456 2012-01-01 2012-01-04 213415 2012-01-02 2012-01-07 สิ่งที่ฉันต้องทำให้สำเร็จด้วยมุมมองคือ: Person_Id ArrivalDate DepartureDate Jan-01 Jan-02 Jan-03 Jan-04 Jan-05 Jan-06 Jan-07 123456 2012-01-01 2012-01-04 1 1 1 1 213415 2012-01-02 2012-01-07 1 1 1 1 1 1 ระบบนี้ใช้สำหรับกิจกรรมดังนั้นการจองโรงแรมแต่ละครั้งอาจใช้เวลาระหว่าง 1 ถึง 15 วัน แต่ไม่มากไปกว่านั้น ความคิดใด ๆ ที่จะได้รับการชื่นชมอย่างมาก

3
วิธีนับจำนวนคอลัมน์ที่แตกต่างกันในตารางเดียวกัน
ตาราง # 01 Status: StatusID Status ----------------------- 1 Opened 2 Closed 3 ReOpened 4 Pending ตารางที่ 02 Claims: ClaimID CompanyName StatusID -------------------------------------- 1 ABC 1 2 ABC 1 3 ABC 2 4 ABC 4 5 XYZ 1 6 XYZ 1 ผลลัพธ์ที่คาดหวัง: CompanyName TotalOpenClaims TotalClosedClaims TotalReOpenedClaims TotalPendingClaims -------------------------------------------------------------------------------- ABC 2 1 …
15 sql-server  pivot 

2
ช่วยด้วยแบบสอบถาม PIVOT
ฉันมีตารางที่มีโครงสร้างด้านล่าง: CREATE TABLE [dbo].[AUDIT_SCHEMA_VERSION]( [SCHEMA_VER_MAJOR] [int] NOT NULL, [SCHEMA_VER_MINOR] [int] NOT NULL, [SCHEMA_VER_SUB] [int] NOT NULL, [SCHEMA_VER_DATE] [datetime] NOT NULL, [SCHEMA_VER_REMARK] [varchar](250) NULL ); ข้อมูลตัวอย่างบางส่วน (ดูเหมือนจะมีปัญหากับ sqlfiddle .. ดังนั้นควรใส่ข้อมูลตัวอย่างบางส่วน): INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) VALUES(1,6,13,CAST('20130405 04:41:25.000' as DATETIME),'Stored procedure build') INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) VALUES(1,6,13,CAST('20130405 04:41:25.000' as DATETIME),'Stored procedure build') INSERT INTO [AUDIT_SCHEMA_VERSION]([SCHEMA_VER_MAJOR],[SCHEMA_VER_MINOR],[SCHEMA_VER_SUB],[SCHEMA_VER_DATE],[SCHEMA_VER_REMARK]) …

2
เมื่อแปลงไดนามิก SQL (เคียวรี pivot) ไปยังเอาต์พุต xml ทำไมตัวเลขแรกของวันที่ถูกแปลงเป็นยูนิโคด
ฉันใช้ตัวอย่างที่ยอดเยี่ยมนี้/dba//a/25818/113298จาก Bluefeet เพื่อสร้างเดือยและเปลี่ยนเป็นข้อมูล xml ประกาศพารามิเตอร์ DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); ถัดไปคือ CTE ที่มีรหัสจำนวนมาก endresult ของ CTE จะถูกใส่ใน temp DB (เช่นเดียวกับในตัวอย่าง) SELECT B.[StayDate] -- this is a date dd-mm-yyyy , B.[Guid] INTO #tempDates FROM BaseSelection B การสร้าง cols (เช่นเดียวกับตัวอย่าง) SELECT @cols = STUFF((SELECT distinct ',' +QUOTENAME(convert(char(10), [StayDate] , 120)) …
11 sql-server  xml  pivot 

5
ทางเลือกในการเข้าร่วมด้วยตนเอง
ฉันได้ถามคำถามที่นี่: /programming/43807566/how-to-divide-two-values-from-the-same-column-but-at-different-rows เกี่ยวกับการหารค่าจากตารางเดียวกันที่คอลัมน์เดียวกัน แต่อยู่ในแถวที่ต่างกัน ตอนนี้ฉันมีปัญหาที่ฉันมีตัวเศษและตัวส่วนมากกว่า (ต่างกันuns) ยังคงself joinเป็นวิธีที่ดีในการแก้ปัญหานี้กับ Postgres หรือมีวิธีแก้ปัญหาที่ดีกว่า ตัวอย่าง: | postcode | value | uns | |----------|-------|-----| | AA | 40 | 53 | | BB | 20 | 53 | | AA | 10 | 54 | | AA | 20 | 55 | | AA | …

2
เป็นไปได้ที่จะ PIVOT ในคำสั่ง LIKE
เป็นไปได้ไหมที่จะจัดกลุ่มตามองค์ประกอบ (ดังในCOLUMN LIKE='Value%') ในPIVOTตาราง? ฉันมีตาราง [DBT] [สถานะ] ซึ่งมีสถานะต่าง ๆ (ของฐานข้อมูลอินสแตนซ์ ฯลฯ ) และไม่ต้องการหมุน / ค้นหาค่า PROD และการทดสอบทั้งหมดเป็นค่าเดียว เช่นแทนที่จะมีคอลัมน์สำหรับสถานะProd, Prod ACC, Prod APP.. ฯลฯ ฉันจะมีเพียงหนึ่งคอลัมน์ที่มีค่าสำหรับและName LIKE 'Prod%'Name LIKE 'Test%' สิ่งที่ฉันมี: นิยามของตาราง CREATE TABLE [DBT].[Status]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NOT NULL, CONSTRAINT [PK_Status] PRIMARY KEY CLUSTERED ( [ID] ASC …

2
วิธีการแผ่ผลของตารางที่มีสองตารางที่ "เกี่ยวข้อง" อย่างเกี่ยวข้องได้อย่างไร
ฉันได้จัดตารางบางส่วนในฐานข้อมูลของฉันให้มีความยืดหยุ่นมากขึ้น แต่ฉันไม่แน่ใจว่าจะเขียน SQL อย่างไรเพื่อดึงข้อมูลที่มีความหมายออกมา ฉันมีตารางต่อไปนี้ (ค่อนข้างยากสำหรับตัวอย่างที่ชัดเจน): CREATE TABLE Loans( Id int, SchemaId int, LoanNumber nvarchar(100) ); CREATE TABLE SchemaFields( Id int, SchemaId int, FieldName nvarchar(255) ); CREATE TABLE LoanFields( Id int, LoanId int, SchemaFieldId int, FieldValue nvarchar(4000) ); ด้วยข้อมูลต่อไปนี้: INSERT INTO Loans (Id, SchemaId, LoanNumber) VALUES (1, 1, 'ABC123'); INSERT …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.