私は病院のデータベースを作成し、「管理人は昨年にどれだけの人ががんと診断されたか知りたいです。OracleのSQLクエリ
CREATE TABLE patients (
ID_patients INTEGER NOT NULL,
Name VARCHAR NOT NULL
);
CREATE TABLE visit(
ID_visit INTEGER NOT NULL,
DATE_visit DATE NOT NULL,
FK_patients INTEGER NOT NULL,
);
CREATE TABLE Diagnosis(
ID_Diagnosis INTEGER NOT NULL,
FK_disease INTEGER NOT NULL
FK_visit INTEGER
);
CREATE TABLE Disease(
ID_disease INTEGER NOT NULL,
Name_disease VARCHAR NOT NULL
);
は、今、私たちは知る必要がある:患者は昨年癌と診断されました。 私は昨年訪問した患者を取得するために以下のクエリを使用しましたが、がん患者を対象とする方法はわかりません。私は "VIEW AS"を使うべきだとは思いますが、私はよくわかりません。
SELECT *
FROM Visit
WHERE Date_Visit BETWEEN
(CURRENT_DATE - interval '2' year) AND CURRENT_DATE - INTERVAL '1' YEAR;
これは悪い構文です...参加、うん – DanK
をJOINを使用は、同様にトリックを行う可能性があります。お気軽に再入力してください。 ;)かなりの時間、私はOracleを使用しなければなりませんでしたが、古い会社では上記の構文を使用していました。 – Tyron78
'JOIN'は実際にはANSI標準ですので、Oracleだけではありません。 'WHERE'節の上記の結合は引き続き解析されますが、最近ではテーブルをこのように結合するのは古くなった習慣と考えられています。これは古いOracleの '(+)'と '( - )'の外部結合構文に似ています...より良い方法を思いついたが、下位互換性のために残しておきました。 – DanK