2011-11-07 5 views
0

私は積み重ね棒グラフを生成するために比較的複雑なMySQLクエリを作成しようとしています。サブクエリ(MySQL)を使用するときのグループ化の代わりに?

私が使用しようとしてきたアプローチはサブクエリですが、月ごとのグループ化はサブクエリには適用されないため、デッドエンドと思われます。返される行ごとに同じ合計カウントが繰り返されます。私はちょうど欠けている比較的単純な代替的なアプローチがあります期待して

SELECT 
MONTH(request.submissiondate), YEAR(request.submissiondate), 
(SELECT count(*) from request where request.DEPARTMENTID='1') as 'Human Resources', 
(SELECT count(*) from request where request.DEPARTMENTID='2') as 'Accounting', 
(SELECT count(*) from request where request.DEPARTMENTID='3') as 'Customer Service' 

FROM request 
WHERE YEAR(request.submissiondate) = 2011 
group by MONTH(request.submissiondate), YEAR(request.submissiondate) 

:ここ

MONTH  HR ACCT CUST SVC 
October 5  1  5 
November 5  1  5 
December 5  1  5 

は、私が使用しているクエリです。

ご協力いただきありがとうございます。

答えて

1

多分このようなものが動作するでしょうか?

SELECT 
MONTH(request.submissiondate), YEAR(request.submissiondate), request.DEPARTMENTID, COUNT(*) as 'total' 
FROM request 
WHERE YEAR(request.submissiondate) = 2011 
group by MONTH(request.submissiondate), YEAR(request.submissiondate), request.DEPARTMENTID 
ORDER BY request.submissiondate 

あなたが上記のように正確出力を得ることが可能かどうかは分かりませんが、戻された行をループすることができ、あなたが使用しているものは何でも、サーバー側のlamguageで出力を並べ替える必要があります。

+0

私は別のアプローチで私の答えを編集しましたが、これがあれば私に教えてください。 –

+0

ブライアン - 実際にはうまくいく - 私はSQLクエリにすべてを組み込むことでやや巧妙にしようとしていたと思うが、アプリケーションでこの出力を使用するコードはそれほど多くはない。どうもありがとうございました! – user1032953

+0

あなたは大歓迎です!天気を決めるか、mysqlクエリーで何かをコード化しないか、後で結果を処理するだけでは、しばしば混乱します。私はまた、どの方法がより速いのかよく分からない。 –

関連する問題