#테이블

f1 

f2 

 f3

aaa

 ...

1,000

aaa

 ...

1,100 

 bbb

 ...

1,500 


#쿼리

SELECT f1, f2, f3

FROM (

SELECT f1, f2, f3

, ROW_NUMBER() OVER(PARTITION BY f1 ORDER BY f3 DESC) as RowIdx

FROM tb_User

) AS t1

WHERE RowIdx = 1


#결과

f1 

f2 

 f3

aaa

 ...

1,100 

 bbb

 ...

1,500 


DECLARE @yymm nvarchar(40), @pTest varchar(4000), @sql nvarchar(1000), @params NVARCHAR(500), @code varchar(20)

SET @code = '0000'

SET @yymm = (SELECT CONVERT(varchar(6), GETDATE(), 112))

 

-- 상황에 따라 TOP, GROUP BY, ORDER BY 적용
SET @sql = N'SELECT @Test = Test '
SET @sql = @sql + 'FROM tb_Log_' + @yymm + ' '
SET @sql = @sql + 'WHERE code = @code '

SET @params = ' @code varchar(20), @Test varchar(4000) output'

EXEC sp_executesql @sql, @params, @code = @code, @Test = @pTest OUTPUT

PRINT @pTest

-- 일치하는 데이터

SELECT t1.a, t2.b FROM table1 t1

WHERE EXISTS (

    SELECT a, b FROM table2 t2

    WHERE t2.a = t1.a AND t2.b = t1.b

)


-- 일치하지 않는 데이터

SELECT t1.a, t2.b FROM table1 t1

WHERE NOT EXISTS (

    SELECT a, b FROM table2 t2

    WHERE t2.a = t1.a AND t2.b = t1.b

)

오즈리포트 작업 중 MSSQL, JAVASCRIPT 소수점 반올림 결과가 다름을 확인


DB에서 불러온 점수를 백분율로 계산하면


배점 

 점수

 백분율

 40

34.67

86.675




백분율이 86.675 인데 javscript의 toFixed(2)와 mssql의 round(결과, 2)로 반올림한 결과 86.67이 나옴


상식적으로 86.675에서 두자리 반올림이면 86.68이 나와야 되는거 아닌가?



mssql :  float와 decimal(10, 2)이 결과가 또 다름..decimal로 한경우에 86.68이 나옴

javascript : toFixed를 Math.round로 하면 86.68이 나옴

'개발 > ETC' 카테고리의 다른 글

엑셀 저장시 줄바꿈  (0) 2018.01.18

SELECT DISTINCT t1.name AS keyName, OBJECT_NAME(t1.parent_object_id) AS tableName

, COL_NAME(t2.parent_object_id, t2.parent_column_id) AS columnName

FROM sys.foreign_keys t1 

JOIN sys.foreign_key_columns t2 ON t2.constraint_object_id = t1.OBJECT_ID

JOIN sys.tables t3 ON t3.OBJECT_ID = t2.referenced_object_id 

WHERE OBJECT_NAME (t1.referenced_object_id) = '테이블명'

데이터)

Idx      name

 1       가나다

 1       라마바

 1       사아자



쿼리)

DECLARE @arrName VARCHAR(1000)

SELECT @arrName = COALESCE(@arrName, '') + name + ','

FROM tbTest

WHERE Idx = 1


PRINT @arrName



결과)

가나다,라마바,사아자


+ Recent posts