• ベストアンサー

access2000のクエリについて

isnull関数に変わるものはないでしょうか? 下記のようにnullがあったら0をセットして数値を合計したのですが、 accessのisnull関数は第2引数をセットできないようでした。 これに変わるようなものはないでしょうか? select CCC, DDD, sum(isnull(aaa,0) as sumAAA from tableB group by CCC,DDD

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>isnull(aaa,0) 関数の使い方を間違っています isnullは引数をひとつしか取りません Nz関数と勘違いしているのでは? またSumはNullを除いて集計してくれますから こんなことをする必要ありません Nullのものが混じっていても Sum(aaa)でOKです Sumでは指定したレコードセットが空っぽの場合だけNullを返します このとき0にしたければ Nz(Sum(aaa),0)

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

Nz関数について調べてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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

  • ACCESSテーブル2つのデータの比較について

    アクセステーブル2つのデータ比較について質問があります、 宜しくお願いいたします。 Access, Excel, VBは初心者レベルです。 TableA,TableBというフォーマットが同じなテーブルがあり、 データが同じかを比較をし、どちらかのテーブルにないエントリーが ある場合はそれを出したいと思います。 途中まで出来たのですが、uniqueではないデータがある為に正確な情報がでません。 具体的には: TableA        | TableB Field1 Field2 | Field1 Field2 AAA 10 | AAA 10 BBB 100 | BBB 100 CCC 200 | CCC 200 CCC 200 | EEE 100 DDD 100 | 希望の答えは Field1 Field2 Field3 CCC 200 NotInB <--- これがでません DDD 100   NotInB  <--- これはだせました EEE 100 NotInA  <--- これもだせました 以下のようなものを書いたのですが、CCCのエントリーがTableBに 一件あるので件数が違うにもかかわらずひけませんでした。 SELECT TableA.*, "NotInB" as Field3 FROM TableA LEFT JOIN TableB ON (TableA.Field1=TableB.Field1) AND (TableA.Field2=TableB.Field2) WHERE TableB.Field1 Is Null; UNION ALL SELECT TableA.*, "NotInB" as Field3 FROM TableA RIGHT JOIN TableB ON (TableA.Field1=TableB.Field1) AND (TableA.Field2=TableB.Field2) WHERE TableA.Field1 Is Null; 一致したらフラグを立てて、再チェックしないようにすればいいのだと思うのですが、アクセスのクエリ、VBなどでどのようにすればできますか?  もしくはアクセスからxlsなどに落としてから、ファイルの状態で比較 (会社で使うので外部ソフト等が使えません) をVBでするといった方法を検討した方がいいのでしょうか? 色々調べてみたのですが、どっちもやり方が分からないので、 それはそもそも出来ないよなどの アドバイスもございましたら、どうぞ宜しくお願いいたします。

  • case whenとsum関数の併用について

    Oracle9iのSQLPLUSにて、select結果の最終行に合計を出力したいだけなのですが、以下のようにcase when~と、sumを併用した場合に正しい合計値が集計されません。 select AAA,BBB,CCC,sum(DDD),(case when sum(EEE < 0 then sum(EEE-(EEE*2)) else sum(EEE) end) from table_A group by GROUPING SETS(AAA,BBB,CCC),()); AAA,BBB,CCC,270,270 AAA,BBB,CCC,-270,-270 AAA,BBB,CCC,60,60 , , ,60,600 600×⇒60○ もしくは他に最終行にうまく合計値を出力する方法はありますでしょうか? よろしくお願いします。

  • SQLのこと:distinctして並び替えたい

    select * from (select distinct on (aaa) * from bbb) as ccc order by ddd テーブルbbbのaaaというフィールドが重複せず、しかも他のフィールドで並び替えをしたかったら、このような書き方以外ありますか?データベースはPostgreSQLです。 この書き方で不都合が出ているというわけではありませんが、どう書けば、パフォーマンス的にも良いSQLになるか、詳しい方がいらっしゃいましたら、お願いします。

  • Accessのクエリー 計算について

    N番号をキーに容積を計算するクエリを作成しています。 それには条件があり、種別が1の場合はマイナスして計算、種別が2の場合はプラスして計算という風にしたいです。 単純にSUM関数を使用するだけではできないと思うのでやり方を教えて下さい。 条件を含めていないSQLは・・・ SELECT DISTINCTROW 種別, N番号, Sum(容積) AS 合計容積 FROM テーブル名 GROUP BY 種別, N番号; となっています。

  • 3.23系MySQLでのEXCEPT検索について

    ver3.23のMySQLとPerlでデータベースを作っています。 検索方法でちょっと詰まってしまったので、 質問させていただきます。 以下のようなテーブルがあるとします。 tableA(基本名簿) AID name sr 1  aaa 100 2  bbb 100 3  ccc 100 4  ddd 100 5  eee 100 6  fff 200 tableB(対応履歴) BID cr 1  40 1  50 1  60 3  40 3  50 3  60 AIDはBIDに対応します。 ここでやりたいのは、 「'sr'が100であり、なおかつ'cr'が40ではない(結合後のテーブルにおいてnullである)tableAのレコードを取り出す」 ということです。 以下のような結果が理想です。 AID name cr  sr 2  bbb null 100 4  ddd null 100 5  eee null 100 いろいろ試した結果、 AID name cr  sr 1  aaa 40  100 2  bbb null 100 3  ccc 40  100 4  ddd null 100 5  eee null 100 このような結果が出る段階まではたどり着きました。 以下がそのコードです。 SELECT * FROM tableA as A left join tableB as B on A.AID = B.BID and cr =40 WHERE sr = 100 order by AID 以上のような結果が出たので、 三行目に"and cr != 40"や"and cr = null"などを足してみたのですが、 結果はemptyでした。 NOT EXISTSを最初は試みたのですが、 よく読んだらバージョンが古くて使えませんでした。 混乱しすぎて何か基本的な事をおろそかにしている気もするのですが… わかる方いらっしゃいましたらぜひご教示くださいませ。

    • ベストアンサー
    • MySQL
  • PL/SQLのコード

    DBの中のVIEWにこのようなコードがありました。 SELECT AAA, BBB, MAX(CCC) AS CCC FROM TABLE SELECTのなかにある’MAX(CCC) AS CCC’という部分が 分りません。関数なのでしょうか、本で調べてみたのですが のっていませんでした。 どなたか分る方はいませんでしょうか。 宜しくお願い致します.

  • アクセスのクエリでSplit関数は使えないのですか

    レコードにaaa/bbb/cccと入っていて、 クエリで SELECT Split([テーブル1]![フィールド1],"/") AS test FROM テーブル1; とすると、 式に未定義関数 <関数名> があります。(Error 3085) になります。 VBAでやるとしたら Sub test() Dim str As String str = "aaa/bbb/ccc" Debug.Print Split(str, "/")(1) End Sub のような事がしたいのですが クエリでは無理なのでしょうか?

  • SQL:テーブル結合で該当レコードがない場合

    SELECT TableA.ID,SUM(TableA.量),TableB.金額 FROM TableA,TableB WHERE TableA.ID = TableB.ID GROUP BY TableA.ID,TableA.量,TableB.金額 こんな感じのSQLなんですが TableAをメインテーブルとして ↓のような結果を得るように作り変えれないか考えています ■TableBとの結合レコードあり(金額登録あり) 1,50,1500 ■TableBとの結合レコードあり(金額登録なし) 1,50,(NULLかスペース) 考えているんですが思いつかないのでヒントいただけたらと思います。宜しくお願いします。

  • accessでDISTINCT 句と矛盾

    IIFで置き換えをした結果をソートしようとしましたが、 SELECT DISTINCT a,IIF(IsNull(b), 0, 1) AS c FROM shain ORDER BY a,c [Microsoft][ODBC Microsoft Access Driver] ORDER BY 句 (c) が DISTINCT 句と矛盾しています。 というエラーになりました。 正しいSQLを教えてください。 SELECT DISTINCT a,IIF(IsNull(b), 0, 1) AS c FROM shain ORDER BY a,b も試しましたが同じようにエラーになりました。

このQ&Aのポイント
  • Googleマップで場所を調べたいけど、自分の位置情報を表示したくない場合、設定を変更して位置情報を許可しないようにする方法があります。ただし、位置情報を許可しない場合、一部の機能が制限される可能性があります。
  • 位置情報を許可しない場合、自分がその時にいる場所は分からなくなりますが、不具合が起こることは少ないです。ただし、自宅などの情報も表示されなくなるため、注意が必要です。また、一部のアプリにおいても位置情報が必要な場合があるため、使用するアプリによって設定を見直す必要があります。
  • 位置情報をオフにする方法は、スマートフォンの設定から行うことができます。また、他のアプリでも位置情報オフの設定がある場合は、必要に応じてオフにすることをおすすめします。ただし、位置情報をオフにすることでカメラの使用も制限される場合があるため、注意が必要です。
回答を見る