현재 보고서를 실행하기 위해 공유 지점과의 교차점에 사용될 쿼리를 작성하고 있습니다. Oracle에서 작동하는 쿼리가 있지만 SQL Server 2005를 실행중인 회사는 SQL Server 2005를 실행하고 있습니다.내역보고의 날짜 및 시간을 계산합니다.
보고서에서 수행 할 작업에는 날짜와 시간을 선택할 수있는 권한이 부여됩니다. 특정 작업에 대해 계산하십시오. 문제는 타임 스탬프에 큰 차이가 있다는 것입니다 (제품이 다음 작업을 수행하는 데 약간의 시간이 걸리기 때문에). 날짜 유형은 varchar이므로 하위 문자열을 사용하여 년, 월, 일 및 시간을 구문 분석합니다. 나는 sample data을 사용할 수 있습니다.
보고서를 보는 사람들은이 시간과 날에이 작업을 수행 한 단위 수를 말하기를 원합니다.
나는 혼란 스럽다는 것을 알고 있습니다. 어떤 설명이 필요한지 알려주세요. 여기
는 질문에 대한 대답은 SQL Server에서 DATEPART() 함수 오라클 구문SELECT T3.PAYMENT_DATE, T3."Hr", T3."Min",
(SELECT COUNT(*)
FROM INVOICE_ARCHIVE T4
WHERE TO_NUMBER(TO_CHAR(T4.PAYMENT_DATE, 'MM')) <= T3."Hr"
AND TO_NUMBER(TO_CHAR(T4.PAYMENT_DATE, 'DD')) <= T3."Min") AS "NUM"
FROM(SELECT T1.PAYMENT_DATE, T2."Hr", T2."Min"
FROM (SELECT (FLOOR((LEVEL + 359)/60)) AS "Hr",
MOD((LEVEL + 359), 60) AS "Min"
FROM dual CONNECT BY LEVEL <= 961) T2, INVOICE_ARCHIVE T1
ORDER BY T1.PAYMENT_DATE, T2."Hr", T2."Min") T3
일/시간 당 몇 개인지보고 싶을 때 범위를 원하거나 선택한 기간까지 롤업 했습니까? 기본 테이블이 무엇인지 명확하지 않기 때문에 원래 테이블 (또는 익명 버전)의 샘플을 제공해주십시오. varchar로 변환하여 날짜와 시간의 일부를 분리하는 것이 이상적인 솔루션이 아닙니다. 실제 날짜 유형이있는 경우 더 나은 방법을 사용할 수 있습니다. 또한 인라인 하위 선택 (프로그래머 성능상의 이유로 컴파일러가 아닌) 대신 CTE를 사용하는 방법을 고려해야합니다. –
이것은 좋은 질문입니다. 여러분이 기쁘게 생각합니다. 내가 이해하는 것으로부터, 그들은 범위를 원할 것입니다. 이 범위는 오전 6시에 시작되어 그들이 선택한 시간에 종료됩니다. 우리는 과거의 모든 데이터를 다른 테이블에 가지고 있지만 그날의 합계에 대한 정보 만 가지고 있습니다. 이제 우리가 취해야 할 조치의 과정은 우리가 필요로하는 데이터를 (시간 기준으로) 입력하고 별도의 테이블로 내보내기 위해 자바 코드를 편집하여 하나의 테이블에서 모든 정보를 가져 오도록하는 것이라고 생각합니다. ; 우리는 또한 이것이 서버에 더 빠르고 덜 부담이되기를 바라고 있습니다. –