三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


広告:


[記事一覧、バックナンバーを見る]

http://q.hatena.ne.jp/1350273361 の 回答下書き

http://q.hatena.ne.jp/1350273361 の 回答下書き

1.不合格を数値の1にして、回数をSUMで計算する(Countのほうがいいのかなぁ?と思いつつ)

1つにまとめると、SQLの計算量・コストがかかりそうだけど、
不合格を1にして、合格を0でSUM合計をとります。

SELECT T_MOTO.名前, T_MOTO.合否, T_MOTO.科目, (SELECT Sum(IIf(T_TEMP.[合否]="不合格",1,0)) FROM TABLE_A AS T_TEMP WHERE T_TEMP.名前 = T_MOTO.名前) AS 不合格の合計
FROM TABLE_A AS T_MOTO;

↑のクエリーで下記↓のように不合格の数をカウントで来たので

2.不合格なし = 0の人なので

↑から、不合格が0の人(合格だけの人を取り出すと)

SELECT T_MOTO.名前, T_MOTO.合否, T_MOTO.科目, (SELECT Sum(IIf(T_TEMP.[合否]="不合格",1,0)) FROM TABLE_A AS T_TEMP WHERE T_TEMP.名前 = T_MOTO.名前) AS 不合格の合計
FROM TABLE_A AS T_MOTO
WHERE ((((SELECT Sum(IIf(T_TEMP.[合否]="不合格",1,0)) FROM TABLE_A AS T_TEMP WHERE T_TEMP.名前 = T_MOTO.名前))=0));


う〜ん、なんか、もっとスッキリするような感じがするけど、
あとは、識者・SQLの魔術師さんにおまかせして....
.
叩き台、ヒントになれば。(※識者にフルボッコされるとヘコムけど、まっイッカ)