
SQL serverを使用しています。
列名に
患者ID、入院日、薬剤投与日、単位数
があります。
(患者IDは同じIDが複数あります:投与日が異なるため)
やりたいことは、
1 1患者IDにつき1行に変換にした上で。
患者ID、入院日、合計薬剤投与単位
に変換。
↑ここまではなんとかできました。
2 上記に「入院日から3日以内の薬剤投与単位を追加」したいです。
(「0」になるIDもあります)
入院日 + 2日 の変数を作成して、その範囲内に「薬剤投与日」が含まれている場合、単位数を合計する、、、みたいな感じなのかと思っているのですが、うまくいきません。
スクリプトは何回かに分けても構いませんので、やり方をご存知の方がいらっしゃいましたら、ご教授ください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
確実に患者ID毎の入院日がすべて同じにできているなら、次のSELECT文で大丈夫です。
SELECT
患者ID
,入院日
,SUM(単位数) AS 合計薬剤投与単位
,(SELECT
COALESCE(SUM(単位数),0)
FROM tbl
WHERE 患者ID=x.患者ID
AND DATEDIFF(DAY,入院日,薬剤投与日)<=2) AS "3日以内合計単位"
FROM tbl AS x
GROUP BY 患者ID,入院日
ORDER BY 患者ID
;
No.1
- 回答日時:
3日以内の投与がない場合は、SUM関数の結果はNULLとしたいですか?
それとも0としたいですか?
下記のSELECT文は、COALESCE関数で、0にしています。NULLにしたい場合は、COALESCE関数を外してSUM関数だけにしてください。
別名の先頭に半角または全角の数字(今回の場合は、3日〜)としましたが、この場合、必ず名前を"3日xxx"または[3日xxx]のように、「"」か[]で囲む必要があります。
SELECT
患者ID
,MIN(入院日) AS 入院日
,SUM(単位数) AS 合計薬剤投与単位
,(SELECT
COALESCE(SUM(単位数),0)
FROM tbl
WHERE 患者ID=x.患者ID
AND DATEDIFF(DAY,入院日,薬剤投与日)<=2) AS "3日以内合計単位"
FROM tbl AS x
GROUP BY 患者ID
ORDER BY 患者ID
;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
ACCESS2007 フォーム 「バリア...
-
SQL Date型の列から年月だけを...
-
BULK INSERT時のNull許容について
-
Accessの重複なしのカウントの...
-
sqlserverで集計結果をUPDATEし...
-
SQLserver 画像保存
-
Microsoft SQL Serverについて
-
SQL Server management studio ...
-
SQLCMDにて教えていただきたい...
-
Wacom Cintiq 16 と Wacom Cint...
-
SQLをはじめから勉強するには
-
SQL クエリ データ数
-
Tverは無料でしょうか?
-
SQLサーバで和暦から西暦に変換...
-
sqlserverでUPDATEできません
-
SQLサーバー接続 特定のPCがWin...
-
ACCESSで複数テーブルを結合し...
-
SQLサーバでの和暦(int)→西暦へ...
-
sqlで、600行あるテーブルを100...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
農薬の混用について
-
アメリカの薬剤の値下げは世界...
-
「材」か「剤」か
-
透明なプラスチックのくもりの...
-
薬学に詳しい方、AUC、Kel ...
-
抗生剤点滴中、本体は止めなけ...
-
口蹄疫での消毒で、酸性の薬剤...
-
レセプト減点について
-
【病院】病名に対する処方日数...
-
薬価計算の答えがあっているか...
-
看護師の方に質問があります。
-
薬物誘発性頭痛って何?
-
トリメチレン ソラレン
-
医療事務 明細書の記載について
-
インスリンの単位とは?
-
看護学生です 点滴静脈内注射 ...
-
医療に詳しい方、 輸液ポンプ ...
-
ハウスクリーニングで浴室に使...
-
アスファルトに除草剤大丈夫?
-
エンドトキシン
おすすめ情報