よろしくお願いします。
同じテーブルの異なるフィールドの個数を、
それぞれカウントします。
2つのCOUNTを含むSQLを記述すれば実現できますが、
これをどうにかして1つのSQLで実現したいのですが、
どうすればよいのでしょうか。
(できましたら、UNION以外の方法をお教えください。)
SELECT COUNT(CAR) AS くるま
FROM T_ENGIN
SELECT COUNT(BIKE) AS バイク
FROM T_ENGIN
思いっきりSQLの質問だね。…板違いだけど思い切りは気持ち良いよ(TT)
普通に
SELECT COUNT(CAR) AS くるま, COUNT(BIKE) AS バイク
FROM T_ENGIN
ではダメだったの?
ってゆーか、これ意味無いね。あー、Null かどうかかで判断すれば良いのか…
SQL Server だと
SELECT SUM( CASE WHEN CAR Is Null THEN 0 ELSE 1 END) AS くるま,
SUM( CASE WHEN BIKE Is Null THEN 0 ELSE 1 END) AS バイク
FROM T_ENGIN
でいけますが…他のだと??
あれ。Null だと
> SELECT COUNT(CAR) AS くるま, COUNT(BIKE) AS バイク
> FROM T_ENGIN
で取れてくるね(汗)。
もっと特別な条件ですか?
ま、返答無いですが、Jet(Access) で使えそうな文を見つけたので
アップします(自分のために(汗))
…いや、
> SELECT COUNT(CAR) AS くるま, COUNT(BIKE) AS バイク
> FROM T_ENGIN
で良いんですけどね(汗)。いろいろ他の条件に変えると
使い勝手が良かったので…。
SELECT Int(Sum(IIf(IsNull([CAR]),0,1))) AS くるま,
Int(Sum(IIf(IsNull([BIKE]),0,1))) AS バイク
FROM T_ENGIN
> 思いっきりSQLの質問だね。…板違いだけど思い切りは気持ち良いよ(TT)
(^_^;)
> あれ。Null だと
>> SELECT COUNT(CAR) AS くるま, COUNT(BIKE) AS バイク
>> FROM T_ENGIN
> で取れてくるね(汗)。
GROUP BYが無いので、それでもカウントできるのでしょう。
> Jet(Access) で使えそうな文を見つけたので
Oracleの場合なら、DECODE関数を併用できますね。
皆様、ありがとうございます。
おかげさまで随分ソースがスッキリしました!(‐^▽^‐)
勉強になりました。