2016-05-03 11 views
0

マイクロソフトのアクセスクエリで、数が異なる複数の列を表示しようとしています。それは私が通常のクエリがb/cそれがSQLのデザインビューを持つことができる特定のことをさせることはありません。 複数の単一の列などをカウントして表示したいとします。アクセスデータベースデザイナーで複数の列を使用する場合

注:テーブル名と属性が変更されました。

select (select count(*)as multiple from (select userId from dbo.Purchases 
where userId is not null GRoup by userId having count(*)>1) x), (
select count(*)as single from (select userId from dbo.Purchases where 
userId is not null GRoup by userId having count(*)=1) x); 

これを別に行うと表示できますが、それらを1つのクエリと1つの行にまとめたいと思います。これは可能ですか?

select count(*)as multiple from (select userId from dbo.Purchases 
where userId is not null GRoup by userId having count(*)>1) x) 
+0

* SQLのデザインビューを持つ通常のクエリを実行することはできません。* ... MS Access GUIにはクエリスクリプティングのSQLビューがあります。 – Parfait

+0

アクセスフォームを使用し、VBAを使用していくつかの入力をオーバーライドするためにgetvalueボタンを使用したので、カウントを並べて表示することができました。 – lastlink

答えて

1

それは2つのクエリと非常に簡単です:私はできません

SELECT Sum(IIf([count]=1,1)) AS [Single], Sum(IIf([count]>1,1)) AS Multiple FROM [Purchases Summary] 

:それの上に構築された第2回では "購入の概要"

Select UserID, count(UserID) as Count from Purchases Group By UserID 

として保存

まず1、これを単一のクエリに組み合わせる巧妙な方法を見つけます。

私が何であったか、私の問題は、最後の夜を知りませんが、単一のクエリもうまくいく

SELECT Sum(IIf([count]=1,1)) AS [Single], Sum(IIf([count]>1,1)) AS Multiple 
FROM (Select UserID, count(UserID) as Count from Purchases Group By UserID) 
0

ドンジョージ・ソリューションです。 フォームとVBAを各列に使用してしまいました。私が持っていた問題は、一意のIDと、本当にサポートされていないSQLデザインビューがあるときに、別個の呼び出しを使用する必要があるということでした。 distinctrowがサポートされていますが、私のクエリでは機能しません。私は前と同じように書くことになって、別個のものを必要としないようにしました。 これは、アクセスフォームの各入力を無効にするために使用したVBAです。 currentDbもデータベースに正しく接続されている必要があります。

selectStatement = "SELECT Count(*) FROM (SELECT userID FROM dbo_Purchases WHERE userID is not null GROUP BY userID HAVING count(*)>1) AS x;" 
rs = CurrentDb.OpenRecordset(selectStatement).Fields(0).Value 
[Text30].Value = rs 
関連する問題