- ベストアンサー
SQL文をどなたか教えてください。
k_o_r_o_c_h_a_nの回答
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
皆さん、外部結合を使って書かれているので、それ以外の方法で書いてみます。 select a.顧客名,count(*) as 紹介者カウント from テーブル as a,テーブル as b where a.顧客名=b.紹介者 group by a.顧客名 試してないけど、動くと思います。 原始的な構文なので、古いデータベースでも動くと思いますよ。
関連するQ&A
- SQL文で
すみません。質問させてください。 A,B,C,D,Eと5個のフィールドで構成されたテーブルtableがあるとします。 tableにはデータがすべて格納され(NULLなし)ています。 ですが、フィールドA,C,DについてA,C,Dとも同じデータが格納される ことがあります。 その重複したデータ以外を取得したいのですが (要するにフィールドA,C,Dでユニークのデータのみ取得) SQL文でどのように書けばいいかわかりません。 よろしくお願いいたします
- 締切済み
- その他(プログラミング・開発)
- ACCESSクエリでの結合の仕方・・・SQL文かも
ACCESS 2003を使用しています。 テーブルA テーブルB の2テーブルでクエリを作っています。 結合的には・・・ テーブルAのフィールドX ⇔ テーブルBのフィールドY です。 これで2テーブルに共通する一致データのみ抽出はできるのですが、 2テーブルに共通する一致データに加えて、 2テーブルの不一致データも一緒にクエリ表示されるようにしたいのです。 欲しいのは抽出イメージは、以下のような感じのクエリ結果です。 テーブルA:フィールドX|テーブルBのフィールドY a |(空) (空) |b c |c d |(空) (空) |e f |f g |(空) h |h おそらく、SQL文を書く必要があるとは、想像できるのですが・・・ どなたか、ご教授いただけると助かります。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【access】複数のフィールドの不一致クエリ
アクセスはまったくのド素人です。 OS:WindowsXP バージョンは2000です。 A,Bのテーブルがあり、それぞれのレコードは以下の通りです。 A a b c 1 4 7 2 5 8 3 6 9 5 6 8 B d e f 5 6 8 1 4 7 2 1 3 4 4 6 d,e,fのフィールドがa,b,cと一致しないレコード(ここでは『2 12 13』と『2 1 3』)をクエリで抜き出したい時はどうすればよいでしょうか? d,e,fに『Is Null』を指定して不一致クエリを実行しても思うように行きませんでした。
- ベストアンサー
- Visual Basic
- Oracle10gのSQL文についての質問です。
Oracle10gのSQL文についての質問です。 [A]テーブルに CODE(key) NAME と、フィールドがあります。 A NAME-A B NAME-B C NAME-C D NAME-D E NAME-E と、データが入っています。 [B]テーブルに CODE(key) LINE(key) BIKO と、フィールドがあります。 A 1 BIKO-A-1 A 2 A 3 BIKO-A-3 B 1 B 2 B 3 C 1 C 2 BIKO-B-2 C 3 D 1 BIKO-D-1 D 2 BIKO-D-2 D 3 BIKO-D-3 E 1 E 2 E 3 BIKO-E-3 と、データが入っています。 結果が CODE(key) LINE(key) BIKO と、フィールドがあります。 A 1 BIKO-A-1 A 2 BIKO-A-1 A 3 BIKO-A-1 B 1 (null) B 2 (null) B 3 (null) C 1 BIKO-B-2 C 2 BIKO-B-2 C 3 BIKO-B-2 D 1 BIKO-D-1 D 2 BIKO-D-1 D 3 BIKO-D-1 E 1 BIKO-E-3 E 2 BIKO-E-3 E 3 BIKO-E-3 と、したいのです。 つまり、[B]テーブルのLINEが一番小さいBIKOが欲しいのです。 色々と考えてみましたが、解りません。 宜しくお願い致します。
- ベストアンサー
- Oracle
- SQL文で表すには
以下の表を用いてSQL文を作成しようと思ってるんですが、途中までしか思いつかないので、どなたかご教授のほうよろしくお願いします。 shohin shiire 商品番号 商品名 単価 仕入番号 仕入先名 0001 みかん 100 001 A 0002 りんご 200 002 B 0003 ぶどう 300 003 C tran 購入番号 商品番号 仕入番号 数量 1 0001 001 1 2 0001 002 2 3 0001 003 3 4 0001 001 4 5 0001 002 5 6 0002 003 6 7 0002 001 7 8 0002 002 8 9 0003 003 9 10 0003 001 10 11 null 0004 20 これを以下のように出力するためにはどのようなSQL文を書けばよいですか? 商品番号 商品名 仕入番号 仕入先名 数量 単価 金額 0001 みかん 001 A 5 100 500 0001 みかん 002 B 7 100 700 0001 みかん 003 C 3 100 300 0002 りんご 001 A 7 200 1400 0002 りんご 002 B 8 200 1600 0002 りんご 003 C 6 200 1200 0003 ぶどう 001 A 10 300 3000 0003 ぶどう 003 B 9 300 2700 0004 null 004 null 20 null null ここまでは正しいと思うのですが・・・ select shohin.商品番号, shohin.商品名, shiire.仕入番号, tran.数量, shohin.単価, tran.数量 * shohin.単価 as 金額 よろしくお願いします。
- ベストアンサー
- Oracle
- sql文の書き方のついて
初心者です。よろしくお願致します。 特定の文字列の数を数え多い順に並び替える事は可能でしょうか? 具体的な例: フィールド名(xxx)に Aが10個 Bが50個 Cが70個 Dが90個 フィールド名(yyy)に Aに1 Bに2 Cに3 Dに4 フィールド名(xxx)に入っている文字列を数え 上記の場合だと (yyy)の並び順は1 2 3 4 としたいのですが、一向にわかりません。 可能であれば、是非ご教授お願いします。
- ベストアンサー
- MySQL
- SQL文の書き方
SQL文の書き方を教えて下さい。 以下の2つのクエリー(1のクエリー&2のクエリー)を1つのクエリーで1度に抽出をかけたいのですがSQL文の書き方がわかりません。 データの発生条件としては TableBのField1は必ずTableAのField1に存在するという条件です。 TableAのField1が「AAA」から「EEE」まである場合は、TableBのField1も必ず「AAA」から「EEE」の範囲内で発生します。 よろしくお願い致します。 1のクエリー ---------------------------------------------------------------- TableA Field1 ---------------------------------------------------------------- AAA AAA AAA BBB BBB CCC DDD DDD EEE EEE EEE ---------------------------------------------------------------- Field1をサマライズしてカウントと名称を取得するクエリー Select Count(TableA.Field1) as RecCount, TableA.Field1 From TableA 結果 RecCount Field1 3 AAA 2 BBB 1 CCC 2 DDD 3 EEE ---------------------------------------------------------------- 2のクエリー ---------------------------------------------------------------- TableB Field1 ---------------------------------------------------------------- BBB CCC CCC EEE ---------------------------------------------------------------- Field1をサマライズしてカウントと名称を取得するクエリー Select Count(TableB.Field1) as RecCount, TableB.Field1 From TableB 結果 RecCount Field1 1 BBB 2 CCC 1 EEE ---------------------------------------------------------------- 希望する結果 TableAのRecCount TableBのRecCount TableAのField1 3 AAA 2 1 BBB 1 2 CCC 2 DDD 3 1 EEE
- ベストアンサー
- SQL Server
- sql文の書き方
いつもこちらで勉強させていただきます。 環境:mysql5.0 PHP5.1.4 apache 2.0.58 いま画面からパラメータ5受け取りました。 これをもってsql文を書こうとするが必須入力項目ではないため一つずつ判断して書いたら30種類の可能性がでてきてすごく長くなってしまいましたがなんか短縮させるいい方法はありませんか?またこれをファンクションで作り直そうとしたらちょっとうまくいかないのでどなたか教えてもらえませんか?ファンクションで渡すパラメータ($sql?$query?あるいは各パラメータですか? )は何にすればいいか?取得したい検索結果は配列です。ファンクション戻り値を連想配列にすることは可能ですか?ちょっと困っています。 $sql = "SELECT * FROM file_tbl WHERE"; // A だけの場合 if ( $b == "" and $c == "" and $d=="" and $e==""){ $sql = $sql." a='%s' order by b DESC,a"; $query = sprintf("$sql", mysql_real_escape_string($a)); // B だけの場合 }else if( $a == "" and $c == "" and $d=="" and $e==""){ $sql = $sql." b >='%s' order by b DESC,a"; $query = sprintf("$sql", mysql_real_escape_string($b)); // Cだけの場合 }else if( $a == "" and $b == "" and $d=="" and $e==""){ $sql = $sql." c <='%s' order by b DESC,a"; . . . // SQL クエリを実行する $result = mysql_query($query); よろしくご教授願います。
- ベストアンサー
- MySQL
- PHPによるSQL文の中にPHP処理を記述するには
PHP内のSQL発行部分の $QUERY=" INSERT INTO TABLE ( `FIELD_A`, `FIELD_B`, `FIELD_C` ) values ( `{$DATA[1]}`, `{$DATA[2]}`, `{$DATA[3]}` ) "; このようなクエリを $QUERY=" INSERT INTO TABLE ( `FIELD_A`, `FIELD_B`, `FIELD_C` ) values ( `{$DATA[($i++)]}`, `{$DATA[($i++)]}`, `{$DATA[($i++)]}` ) "; のような感じにしたいのですが うまくいきません。 どうすれば、クエリー文の中で$i++等の処理を 含まさせることができるでしょうか?
- ベストアンサー
- PHP
- SQL文を教えてください
1-a,1-b,2-a,2-b,3-a,3-b,4-a,4-b,5-a,5-bというカラムがあるとき。 以下の条件を満たす行を抽出するのに、 検索速度の早いSQLの書き方はありますか? (条件)N-aに値有りのとき、N-bは値有り ただし、1-aから5-a全て値なしのときは対象外 ※こんな書き方は思いつくのですが、遅そうで・・・ ( (1-a is not null AND 1-b is not null) or (2-a is not null AND 2-b is not null) or (3-a is not null AND 3-b is not null) or (4-a is not null AND 4-b is not null) or (5-a is not null AND 5-b is not null) ) and not(1-a is null AND 2-a is null AND 3-a is null AND 4-a is null AND 5-a is null)
- ベストアンサー
- SQL Server
お礼
k_o_r_o_c_h_a_nさん、お返事ありがとう御座います。 なるほどこういう方法もあるのですね!? 早速試してみます! 本当にありがとうございました!