none
Access 와 ms-sql 계산값에 대하여 RRS feed

  • 질문

  • 지금 현재 Access를 디비로 사용하여 프로 그램을 만들었습니다. 그런데 이것을 MS-SQL 로 변환 하던중 문제점을 발견 했습니다.

    쿼리로 계산을 할때 곱셈과 나눗셈에서 소수점 자리수가 길어 질수록 결과 값이 다르게 나오는것입니다.

    왜 같은 MS제품을 사용하는데 결과 값이 다르게 나오나요??

    그리고 MS-SQL에서 쿼리에서

    select A * B * c ...이런 식으로 쿼리를 짤경우 소수 3째자리까지만 표시가 돼는데 이것은 왜그런가요???

    convert와 cast를 사용 했는데도 문제점을 찾기가 어렵네요 A,B,C모두 데이터 타입을 소수 17잘까지 맞췄습니다. 그러면 결과 값도 소수 17자리까지 나와야 하지 않나요?

     

    2012년 1월 30일 월요일 오전 4:35

모든 응답

  • 쿼리문의 예를 주신다면 답을 달기가 좀 더 쉬울듯 합니다 ^^

     

    소수점이라면 decimal이나 numeric 데이터 형식입니다.

    A * B 라고 가정하면 소수점 뒤의 자리는 (A의 소수점 뒤의 자리수 + B의 소수점 뒤의 자리수)가 됩니다.

    아래에서 i의 소수점 뒤의 자리수는 3자리, j의 소수점 뒤의 자리수는 2자리라고 한다면 곱셈의 결과값은 5자리가 됩니다. 0.00014


    DECLARE @i decimal(20,3)
    SET   @i=0.007
    SELECT @i

    DECLARE @j decimal(20,2)
    SET @j=0.02

    SELECT @i  *@j

     

    A/B 나눗셈의 소수점 뒤의 자리수의 결과는 곱셈과 좀 다릅니다.

     

     

     


    Hong-ju
    2012년 1월 31일 화요일 오전 12:43
  • 안녕하십니까? sharoo7

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

    문의 하신 “Access ms-sql 계산값에 대하여에 대한 답변 jslee님이 좋은 대답해 주셨습니다.

     

    MS SQL >> expression * expression인경우 결과값은 우선 순위가 더 높은 인수의 데이터 형식으로 반환 합니다

    데이터 형식 우선 순위(Transact-SQL)를 참조해 주시길 바랍니다.

    Access >> MS에서 제공하는 필드 데이터 형식에 대해서 참조해주시길 바랍니다.

     

    또한 Access 데이터베이스와 Access 프로젝트 사이의 데이터 형식 차이 를 확인해보시길 바랍니다.

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

     

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다. 하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    2012년 1월 31일 화요일 오전 2:54
    중재자