人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

sqlの質問です。
dbはsqliteです。

selectの際、列にas句で別名を指定できますが、
as ◯◯の◯◯を、動的にする方法ありますでしょうか。

例えば、
select
count(case when moushikomi_year = strftime('%Y', 'now') then 1 else null end) as strftime('%Y', 'now') のようなイメージです。

●質問者: FujiiRock
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
●90ポイント ベストアンサー

残念ながらそのような使い方は見当たりませんね。

どうしてもSQL実行時点の時刻が欲しいなら、
別カラムを用意して、あとはVBAなどの処理側で判断させる方向で。

SELECT
STRFTIME('%Y', 'now') AS t, ←別カラム
SUM(CASE WHEN moushikomi_year = STRFTIME('%Y', 'now') THEN 1 ELSE 0 END) AS f

余談ですがnullを積極的に使うのはミスの元にもなるので、
何らかの値をあてがうことを考えたほうが良いです。


うぃんどさんのコメント
SQLの基礎的使い方に問題がありそうな気もしてきたので、 集計の例を追加しておきます。 WHEREで必要なデータだけに絞ってからカウントする例 >|sql| SELECT moushikomi_year, count(*) AS c FROM テーブル WHERE moushikomi_year = STRFTIME('%Y', 'now') ||< 結果例 |*moushikomi_year|*c| |2013|123| 年ごとに括ってカウントする例 >|sql| SELECT moushikomi_year, count(*) AS c FROM テーブル GROUP BY moushikomi_year ||< 結果例 |*moushikomi_year|*c| |2011|256| |2012|198| |2013|123|

うぃんどさんのコメント
回答No.2のだわかき( id:dawakaki )くんは反省してないみたいですね。 >DB-API のパラメータ割り当てで実現できます。 >http://docs.python.jp/2.6/library/sqlite3.html SQLiteの機能を使ったものではなくPython側でSQLを作るって話ですね。 そのようなことであればphpなど他の言語でもできますし、、 SQLiteで出来るかと言う問いにもまったく答えていませんね。 「where条件の値を動的に指定」に引き続き、 今回もまたズサンな回答を投稿してくる人なので、 厳しい措置が必要なのかもしれません。 ストアドの話のほうでもズサンですね。 的確な答えを持っていれば私も答えるのですが、残念です。 以下、またガイドラインからの引用になりますが…。 http://q.hatena.ne.jp/help/guideline >> 投稿の内容が明確に不適切であるとお考えの場合には、 通報機能や回答拒否機能をご利用いただくことを推奨します <<

FujiiRockさんのコメント
回答ありがとうございました。 もしかしたら、って思いましたが やはりできないすね。すっきり

2 ● だわかき
●10ポイント

DB-API のパラメータ割り当てで実現できます。
http://docs.python.jp/2.6/library/sqlite3.html


FujiiRockさんのコメント
ありがとうございます〜
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ