0

私は、特定の日にビデオを貸し出していない人の数、たとえば2013年10月25日を計算しようとしています。私には日付日付のフィールドがありますが、作業する範囲がなく、特定の日付しかないと、私が生きている間、続行するためにどのような手順を踏むべきかを理解できません。

その日に何個のアイテムが出ていたのかを知ることができれば、クエリはできませんが、それでも元の問題に悩まされていると思いました。

これをチェックする最も簡単な方法は何ですか?

SQL Developerを使用しています。テーブルは、ItemNo、CardNo、DateOut、DateInで構成されています。

私はBETWEENを考えていましたが、範囲のみで同じ日付を使用するAFAIKは機能しないようです。日付がTBHでどのように機能するかについては十分にわかりません。

最終結果は、理想的には、特定の日付にItemNoが出ていないすべての一意のCardNoのカウントになります。

4

2 に答える 2

0

特定の日に貸し出し中のビデオを持っていなかった人の数を見つけるには、カードを持っている人の数と、特定の日に貸し出し中のビデオを持っていた人の数を知る必要があります。

あなたは2つのテーブルを持っているようです:

  • CardHolder:CardNo、..。
  • LoanItem:CardNo、ItemNo、DateIn、DateOut、..。

したがって、カード所有者の数は次のとおりです。

SELECT COUNT(*) FROM CardHolder

2013年10月25日に1つ以上のアイテムを貸し出している人の数は次のとおりです。

SELECT COUNT(DISTINCT CardNo)
  FROM LoanItem
 WHERE DATE '2013-10-25' BETWEEN DateOut AND DateIn

だから、あなたは必要です:

SELECT (SELECT COUNT(*) FROM CardHolder) -
       (SELECT COUNT(DISTINCT CardNo)
          FROM LoanItem
         WHERE DATE '2013-10-25' BETWEEN DateOut AND DateIn
       )

SELECTのテーブルを提供する必要があるかもしれません—それはDBMSによって異なります。

SELECT (SELECT COUNT(*) FROM CardHolder) -
       (SELECT COUNT(DISTINCT CardNo)
          FROM LoanItem
         WHERE DATE '2013-10-25' BETWEEN DateOut AND DateIn
       )
  FROM Dual;

または他の1行のテーブル。

于 2013-03-19T05:08:18.963 に答える
0

あなたが何を必要としているかを推測することに基づいているだけで、確かに私はあなたの質問を完全には理解していません。

    select count(distinct people) 
    from tableName 
    where '25-OCT-2013' not between DateOut and DateIN

于 2013-03-19T04:57:46.397 に答える