2011-08-12 10 views
0

私は、提出された日付と解決された日付を含むRemedyチケットのダンプを持っています。 $日付 結果セットの各日付の前にSQLサブクエリ・カウント・レコードにアクセスしますか?

  • で解決チケット数のチケットの数

    1. $日
    2. に提出されたチケットの数を:私は何をする必要があり、少なくとも1枚のチケットが提出したすべての日付の計算でありますはまだ開い $日

    の営業開始時に私は私の項目1と2を取得するクエリを持っているが、私は3にこだわっている私は、基本的に$の日付を見てする方法が必要です1と2のサブクエリから、それをWHERE句として使用します3.

    ためubqueryは、これは私が持っているクエリです:

    SELECT xDate, sTot, cTot, oTot FROM 
    (
        (
        (
         SELECT xDate, COUNT(*) AS sTot 
         FROM (
         SELECT FORMAT(SubmitDate, "mm/dd/yyyy") AS xDate FROM tblOpenINC 
         UNION ALL 
         SELECT FORMAT(SubmitDate, "mm/dd/yyyy") AS xDate FROM tblClosedINC 
        ) GROUP BY xDate 
        ) AS sub 
    
        INNER JOIN 
    
        (
         SELECT FORMAT(LastResolvedDate, "mm/dd/yyyy") AS yDate, COUNT(*) AS cTot 
         FROM tblClosedINC 
         GROUP BY FORMAT(LastResolvedDate, "mm/dd/yyyy") 
        ) AS res 
    
        ON res.yDate = sub.xDate 
    ) 
    
        INNER JOIN 
    
        (
        SELECT FORMAT(SubmitDate, "mm/dd/yyyy") AS zDate, COUNT(*) AS oTot 
        FROM tblClosedINC 
        WHERE FORMAT(SubmitDate, "mm/dd/yyyy") < DateValue(xDate) 
        GROUP BY FORMAT(SubmitDate, "mm/dd/yyyy") 
    ) AS opn 
    
        ON opn.zDate = sub.xDate 
    
    ) 
    ORDER BY DateValue(xDate) ASC 
    

    それはxDate(最初のサブクエリから日付)が何であるかを知らないので、最後のサブクエリが、動作しません。

    私はVBAでこれを行う必要がありますが、実際にはSQLでこれをすべて実行して、生データをExcelやその他のものに簡単にダンプできるようにしたいと考えています。

    また、わかりやすくするために、私はRemedy、つまり最初のサブクエリのUNIONからダンプを取得した時点で、現在オープンしているチケットまたは現在開かれていないチケットの別のテーブルを持っています。さらに、Remedyの日付フィールドにはすべてタイムスタンプがあるため、FORMAT関数はタイムスタンプを取り除きます。

  • 答えて

    0

    サブクエリを上に移動してみてください。多分それが助けになるでしょう。残念ながらZDATEクエリが動作しません複数の結果を、作成し

    SELECT xDate, sTot, cTot, 
    (SELECT FORMAT(SubmitDate, "mm/dd/yyyy") FROM tblClosedINC WHERE FORMAT(SubmitDate, "mm/dd/yyyy") < DateValue(xDate) GROUP BY FORMAT(SubmitDate, "mm/dd/yyyy")) as zDate, 
    (SELECT COUNT(*) FROM tblClosedINC WHERE FORMAT(SubmitDate, "mm/dd/yyyy") < DateValue(xDate)GROUP BY FORMAT(SubmitDate, "mm/dd/yyyy")) as oTot 
    FROM 
    (
        (
        (
         SELECT xDate, COUNT(*) AS sTot 
         FROM (
         SELECT FORMAT(SubmitDate, "mm/dd/yyyy") AS xDate FROM tblOpenINC 
         UNION ALL 
         SELECT FORMAT(SubmitDate, "mm/dd/yyyy") AS xDate FROM tblClosedINC 
        ) GROUP BY xDate 
        ) AS sub 
    
        INNER JOIN 
    
        (
         SELECT FORMAT(LastResolvedDate, "mm/dd/yyyy") AS yDate, COUNT(*) AS cTot 
         FROM tblClosedINC 
         GROUP BY FORMAT(LastResolvedDate, "mm/dd/yyyy") 
        ) AS res 
    
        ON res.yDate = sub.xDate 
    ) 
    
    ) 
    ORDER BY DateValue(xDate) ASC 
    
    +0

    ... – ClairelyClaire

    +0

    追加 'とフォーマット(SubmitDate、 "YYYY/MM/DD")= sub.xDate'サブクエリの両方へそれを解決する必要があります。 1つのxDateに複数のzDateが存在する場合を除きます。そうであれば、それは動作しません。 – Kyle

    +0

    ええ、それは問題です。それは、複数の日付から計算する必要があります - 指定された日付より前のすべての日付。 – ClairelyClaire

    関連する問題