質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

23027閲覧

SQLでカウントした結果を変数に代入したい

pro-poke5

総合スコア46

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2017/03/21 08:59

編集2017/03/22 01:23

こんにちわ
VS2010
DBはPostgres
です

SQLでカウントした値を変数に代入したいのですがうまくできません
@kensuu →結果を代入したい変数
shitei →変数、DATE型 Web上でtextboxに書き込まれた値です

where以下のSQLは多分あっているのであまり気にしなくて大丈夫です

SQL

1 DECLARE @kensu INT 2 SELECT @kensuu = shitei as YEAR COUNT(*) as TRANSITION_COUNT 3 FROM tm_user_enc 4 WHERE shitei >= create_datetime 5 AND member_type = '01' 6 NOT in (shitei < update_datetime) 7 AND (enable_flg = 0)

追記
sql += "DECRARE @kensu INT";
sql += "SELECT @kensuu = shitei as TRANSITION_YEAR COUNT(*) as TRANSITION_COUNT";
sql += "FROM tm_user_enc ";
sql += "WHERE shitei >= create_datetime";
sql += "AND member_type = '01' ";
sql += "NOT in (shitei < update_datetime)";
sql += "AND (enable_flg = 0)";

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

A.Ichi

2017/03/22 00:11

お見受けしたところSqlServerのコマンドスクリプトの様ですが、どのような環境にて実行されているのでしょうか?
pro-poke5

2017/03/22 01:24

すみません、環境というのは.NetFramework4.6のことを指してますでしょうか?
A.Ichi

2017/03/22 01:31

ありがとうございます。PostgresへのSQLとは異なって居るように見れましたのでお聞きしました。ドットNetからだと違うのかもしれませんが?
pro-poke5

2017/03/22 02:09

PostgresへのSQLではなくてすみません。VS210上、C#にてかいております。
Zuishin

2017/03/22 03:21

どの言語を使っても SQL が変わることはありませんよ。Transact SQL の情報を見て書いたのではありませんか?
guest

回答3

0

sql

1SELECT COUNT(*) INTO kensuu FROM tm_user_enc;

投稿2017/04/07 03:58

Yuusai

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

functionだと似たような記述も有りますが通常のSQLでは見つけられませんでした。
ですのでC#は素人でコードミスが有るかもしれませんが例として

c#

1using Npgsql; 2using System; 3using System.Data; 4using System.Text; 5public class Sample { 6 public static void Main(){ 7 StringBuilder sb = new StringBuilder(); 8 sb.Append("Server=127.0.0.1;"); 9 sb.Append("Port=5432;"); 10 sb.Append("User Id=hogeUser;"); 11 sb.Append("Password=hogepass;"); 12 sb.Append("Database=hogeDB"); 13 14 string connString = sb.ToString(); 15 using (var con = new NpgsqlConnection(connString)) { 16 con.Open(); 17 18 //データ検索 19 StringBuilder sql = new StringBuilder(); 20 sql.Append("SELECT shitei as YEAR, COUNT(*) as TRANSITION_COUNT"); 21 sql.Append("FROM tm_user_enc "); 22 sql.Append("WHERE :shitei >= create_datetime"); 23 sql.Append("AND member_type = '01' "); 24 sql.Append("AND NOT (:shitei < update_datetime)"); 25 sql.Append("AND (enable_flg = 0)"); 26 string sqlString = sql.ToString(); 27 28 cmd = new NpgsqlCommand(sqlString, con); 29 cmd.Parameters.Add(new NpgsqlParameter("shitei", DbType.String) {Value = "2017-03-03"}); 30 var dataReader = cmd.ExecuteReader(); 31 while (dataReader.Read()) { 32 Console.WriteLine("{0},{1}", dataReader["YEAR"], dataReader["TRANSITION_COUNT"]); 33 } 34 } 35 } 36} 37

投稿2017/03/24 08:29

A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

実行環境がないのでよくわかりませんが、こんな感じになるんじゃないですか?

kensu integer := ( SELECT COUNT(*) as TRANSITION_COUNT FROM tm_user_enc WHERE shitei >= create_datetime AND member_type = '01' NOT in (shitei < update_datetime) AND (enable_flg = 0) )

投稿2017/03/22 01:50

編集2017/03/22 01:52
Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問