0
サブクエリでカウントする必要があります。これをサブクエリに追加します。 SELECT COUNT(DISTINCT v.Department_descr)vwGenVouchInfo vから、v.Patient_Number、b.patient_name)をpat_deptサブにCountを追加する方法
SELECT *
FROM vwGenVouchInfo v
WHERE v.Patient_Number=b.Patient_Number
AND v.Voucher_Primary_Diagnosis_Code IN ('Z00.129', 'Z00.00'))
ORDER BY voucher_primary_diagnosis_code
私として: は、私は、サブクエリに次の行を追加するときに失敗取得しています患者が最も多くの時間に行った部門を持つ結果を得たいと考えています。私はこれをどのように追加するのか分かりません。Pat_deptが診療所を保持し、患者が歯科医院の他にほとんどの時間に行きたがります。
SELECT distinct
a.voucher_primary_diagnosis_code,
a.Patient_Number
, b.Patient_Name, b.patient_home_phone, patient_age
FROM vwGenVouchInfo a
LEFT JOIN vwGenPatInfo b ON a.Patient_Number=b.Patient_Number
WHERE
a.Department_Descr = 'Dental'
and a.Voucher_Service_Date >= '2015-01-01'
AND NOT EXISTS (
-- This subquery looks at other vouchers of the same patient.
--
SELECT *
FROM vwGenVouchInfo v
WHERE v.Patient_Number=b.Patient_Number
AND v.Voucher_Primary_Diagnosis_Code IN ('Z00.129', 'Z00.00'))
ORDER BY voucher_primary_diagnosis_code
エラーについてサブクエリを使用する場合は、必要に応じてエイリアスを使用します。例えば 'select * from(select 1)q;'はエラーを返し、 'select * from(myvalueとして1を選択する)'は出力しません。したがって、countのような関数はサブクエリのエイリアスを必要とします。 – LukStorms
でも私はカウントステートメントを試して私はすべてのエラーを持っているメッセージ8120、レベル16、状態1、行1 列 'vwGenVouchInfo.Patient_Number'は集計関数またはGROUP BYに含まれていないので、句。 メッセージ4104、レベル16、状態1、行1 マルチパート識別子 "b.patient_name"はバインドできませんでした。 メッセージ4104、レベル16、状態1、行1 マルチパート識別子 "b.patient_number"はバインドできませんでした。 –
ほとんどの主要なデータベースタイプでは、COUNTなどの集計関数を使用すると、基本的にはグループ化されていることを意味します。 SELECTの中の列(集合関数内の列を除く)もGROUP BY部分にある必要があります。 @Sidが答えたところを見てください。 – LukStorms