SELECT NUM_NO,TYPE_REF,
CASE TYPE_REF WHEN '1' THEN NUM1 WHEN '0' THEN '0' END AS NUM1,
CASE TYPE_REF WHEN '0' THEN NUM1 WHEN '1' THEN '0' END AS NUM2,
NUM1 AS DEF
FROM NUM_TABLE
INNER JOIN CASE_TABLE
ON NUM_NO = CASE_NO
ผมต้องการจะนำ NUM1 + NUM2 มาเป็นผลรวมอีกคอลัมหนึ่งชื่อ TOTAL จึงคิดว่าใช้การบวกกันแบบปกติ ผลปรากฏว่า..
มันมองไม่เห็น NUM2 ซึ่งผมได้ตั้งชื่อตอนแยกคอลัมเพื่อใช้อ้างอิงเป็น NUM1 และ NUM2 แล้ว(ตรงส่วนนี้ไม่รู้ว่าสามารถใช้ได้แบบปกติหรือไม่ครับ กำลังศึกษาการใช้ CASE อยู่)
มีวิธีใดบ้างครับที่จะสามารถทำการบวกทั้งสองคอลัมดังกล่าวเป็นคอลัมใหม่ชื่อ TOTAL ได้ครับ
USE [testDB]
GO
/****** Object: Table [dbo].[NUM_TABLE] Script Date: 11/18/2013 21:43:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[NUM_TABLE](
[NUM_NO] [varchar](10) NULL,
[NUM1] [int] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[CASE_TABLE] Script Date: 11/18/2013 21:43:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CASE_TABLE](
[CASE_NO] [varchar](10) NULL,
[TYPE_REF] [varchar](50) NULL,
[CASE_NUM] [int] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SELECT NUM_NO,TYPE_REF,
CASE TYPE_REF WHEN '1' THEN NUM1 WHEN '0' THEN NUM1 END AS NUM1,
CASE TYPE_REF WHEN '0' THEN NUM1 WHEN '1' THEN NUM1 END AS NUM2,
(CASE TYPE_REF WHEN '1' THEN NUM1 WHEN '0' THEN NUM1 END) +
(CASE TYPE_REF WHEN '0' THEN NUM1 WHEN '1' THEN NUM1 END) AS TOTAL, /*<-----<<*/
NUM1 AS DEF
FROM NUM_TABLE
INNER JOIN CASE_TABLE
ON NUM_NO = CASE_NO
นะครับผม...
หลัง THEN นั้นแล้วแต่ท่านๆจะอยากใส่ค่าอะไรก็ตามใจครับ ยังไงคอลัม NUM1 และ NUM2 ไว้สำหรับแสดงค่าเฉยๆ รวมจริงๆเป็นคอลัม TOTAL ครับ