(ÇØ°á¿Ï·á) Äõ¸® Áú¹®µå¸³´Ï´Ù ¤Ð¤Ð

   Á¶È¸ 1289   Ãßõ 0    

 좌측테이블 데이터에서 우측테이블처럼 출력하고자합니다(2번째 행만 없어졌다 보시면됩니다)

Select MAX(Coldate) as ColDate, ColName From Table Group by ColName으로하면




여기까지는 출력해냈습니다.

이러저러해도 뒤엣 3, 4번째 컬럼을 출력하기 어려워 조언을 구합니다 ㅠㅠ



ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
Àϱ¹ 2022-11
¿øÇÏ½Ã´Â°Ô ¸Â´Â°¡ ¸ð¸£°Ú½À´Ï´Ù.

WITH TEMP_TABLE AS
(SELECT '2022-11-29' COLDATE, '»óÇ°A' COLNAME, 14 COLWIDTH,  9 COLHEIGHT FROM DUAL UNION ALL
 SELECT '2022-11-28' COLDATE, '»óÇ°A' COLNAME, 15 COLWIDTH,  9 COLHEIGHT FROM DUAL UNION ALL
 SELECT '2022-11-28' COLDATE, '»óÇ°B' COLNAME, 52 COLWIDTH, 52 COLHEIGHT FROM DUAL UNION ALL
 SELECT '2022-11-28' COLDATE, '»óÇ°C' COLNAME, 27 COLWIDTH, 27 COLHEIGHT FROM DUAL UNION ALL
 SELECT '2022-11-28' COLDATE, '»óÇ°D' COLNAME, 15 COLWIDTH,  9 COLHEIGHT FROM DUAL UNION ALL
 SELECT '2022-11-2E' COLDATE, '»óÇ°E' COLNAME, 14 COLWIDTH,  9 COLHEIGHT FROM DUAL)
SELECT A.COLDATE, A.COLNAME, A.COLWIDTH, A.COLHEIGHT
  FROM TEMP_TABLE A
 INNER JOIN (
      SELECT COLNAME, MAX(COLDATE) COLDATE
        FROM TEMP_TABLE
        GROUP BY COLNAME
            ) B ON A.COLDATE = B.COLDATE AND A.COLNAME = B.COLNAME;
     
MSSQL 2000¿¡¼­´Â Áߺ¹Ç׸ñÀÌ ³ª¿Í¼­ distinct½á¼­ Á¦°ÅÇÏ°í È®ÀÎÁßÀÔ´Ï´Ù!
´ëÃæ ÀÌ·±½ÄÀ̸é ÇØ°á °¡´ÉÇÕ´Ï´Ù.
DB Á¾·ù, ¹öÀü¿¡ µû¶ó ´Ù¸¦ ¼ö ÀÖÀ¸´Ï
Äõ¸® Áú¹®Àº »ç¿ëÇÏ´Â DB Á¾·ù ¹öÀüÀ» ±âº»À¸·Î Ç¥±âÇØ¾ß Á¤È®ÇÑ ´äº¯À» ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.

SELECT ColDate, ColName, ColWidth, ColHeight
FROM (
SELECT rank() over (partition by ColName order by ColDate DESC) rk
      ,*
FROM Å×À̺í¸í
) lst
WHERE rk=1

µ¥ÀÌÅÍ°¡ ¸¹°í ColDate, ColName ÀÌ PK(¶Ç´Â À妽º°¡ ¼³Á¤µÈ)ÀÎ Å×À̺íÀÇ °æ¿ì À§¿¡ Àϱ¹´ÔÀÌ ¼³¸íÇϽŠ¹æ¹ýÀ¸·Î Çؾß
¼Óµµ°¡ ºü¸§´Ï´Ù.
     
±âº»ÀûÀ롃 Á¦°¡ ±ôºýÇß±º¿ä ²ûÂïÇÏ°Ôµµ MSSQL 2000À» ¾²°íÀ־ ¿©·¯°¡Áö ³»ÀåÇÔ¼ö°¡ ¾ø½À´Ï´Ù ¤Ð¤Ð
MSSQL 2000 ÀÌ½Ã¸é ¾Æ·¡ Äõ¸®·Î ÇØ°á µÉ µí ÇÕ´Ï´Ù.

WITH TEMP_TABLE AS (
 SELECT '2022-11-29' COLDATE, '»óÇ°A' COLNAME, 14 COLWIDTH,  9 COLHEIGHT  UNION ALL
 SELECT '2022-11-28' COLDATE, '»óÇ°A' COLNAME, 15 COLWIDTH,  9 COLHEIGHT  UNION ALL
 SELECT '2022-11-28' COLDATE, '»óÇ°B' COLNAME, 52 COLWIDTH, 52 COLHEIGHT  UNION ALL
 SELECT '2022-11-28' COLDATE, '»óÇ°C' COLNAME, 27 COLWIDTH, 27 COLHEIGHT  UNION ALL
 SELECT '2022-11-28' COLDATE, '»óÇ°D' COLNAME, 15 COLWIDTH,  9 COLHEIGHT  UNION ALL
 SELECT '2022-11-27' COLDATE, '»óÇ°E' COLNAME, 14 COLWIDTH,  9 COLHEIGHT
)

SELECT ColDate, ColName, ColWidth, ColHeight
FROM (
SELECT ( select count(*)
from TEMP_TABLE counter
where counter.ColName = TEMP_TABLE.ColName -- Partition
and counter.ColDate >= TEMP_TABLE.ColDate  -- Order
) as rk
  ,*
FROM TEMP_TABLE
) lst
WHERE rk=1
     
³î¶øµµ·Ï Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÕ´Ï´Ù ´ë´ÜÇÑ ³»°øÀ̽ʴϴÙ...!


QnA
Á¦¸ñPage 401/5687
2015-12   1529831   ¹é¸Þ°¡
2014-05   4993913   Á¤ÀºÁØ1
2010-09   11529   ±è»óÈñ
2011-05   11528   °æ¹ÚÇѽùÎ
2002-11   11528   ±èµµ±Õ
2003-03   11527   ÀÌÁ¤¿ø
2003-11   11526   ½Å»óÈÆ
2002-09   11526   ÇÑâ¼ö
2002-12   11526   ±èÈ¿¼ö
2014-10   11525   ¹æoÈ¿o¹®
2003-02   11525   parksangwook
2013-10   11525   inquisitive
2012-04   11524   ¸¶ÀÌÄÚÄÚ
2003-04   11524   ¹ÚÁ¾´ë
2014-01   11524   ³ª¿ì¸¶Å©
2014-10   11522   ¹Î¼ºÀÏ
2002-09   11522   ÀÌÈ¿À²
2013-09   11522   ±èÀº¸ñ
2002-12   11521   ÀÓ´ëÁß
2016-06   11521   ¾È°³¼Ó¿µ¿ø
2014-12   11521   ÂÄÀμº
2016-11   11520   ³Ä¾Æ¾Æ¾Æ¾Ï