現在、SharePointと連携してレポートを実行するために使用されるクエリに取り組んでいます。Oracleで動作することがわかっているクエリがありますが、私が働いている会社はSQLServer2005を実行しています。
レポートが行うことは、その人が任意の日時を選択できるようにし、その特定の操作のカウントを与えることです。問題は、タイムスタンプに大きなギャップがあることです(製品が次の操作に到達するまでに少し時間がかかるため)。日付型はvarcharであるため、部分文字列を使用して年、月、日、および時刻を解析しました。サンプルデータがあります。
レポートを見ている人々は、この時間と日に何台のユニットがこの操作を通過したかを言う能力を望んでいます。
これは紛らわしいことですが、説明が必要な場合はお知らせください。
これがoracle構文です
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