[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/09/03(Fri) 16:30
投稿者名:みそっこ
Eメール:
URL :
タイトル:
SQLのSUMについて
SELECT count(*) as レコード数
  FROM 売り上げデータ
  WHERE 処理日付 = '2004/09/03'  
GROUP BY 顧客コード,店コード

とするとレコード数が




のように返ってくるのですがこれをSUMで
値を1+2+1+3=7で"7"を取得するには
どこにSUMをいれればよいでしょうか?
今日一日いろいろ試しても駄目でした・・。
みなさまのお知恵をおかしください・・・。
よろしくお願いいたします。

投稿時間:2004/09/03(Fri) 17:02
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re: SQLのSUMについて
いや、sum入れようがないでしょ、これf^_^;
VB側で受け取った値を足し込むだけでもイイかと思いますが。

1,2,1,3って返ってくるのって、処理日付によってカウントが違うって意味だよね?
ならwhere句内の処理日をbetweenで範囲指定するか、inで列挙すれば取得出来ます。

    SELECT count(*) as レコード数
    FROM 売り上げデータ
    WHERE 処理日付 between '2004/08/31' and '2004/09/03'
    GROUP BY 顧客コード,店コード

とか、日付が飛び飛びなら

    SELECT count(*) as レコード数
    FROM 売り上げデータ
    WHERE 処理日付 in ('2004/08/29', '2004/09/01', '2004/09/03')
    GROUP BY 顧客コード,店コード

とか。

投稿時間:2004/09/03(Fri) 17:42
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re^2: SQLのSUMについて
あー、グループ化されてることをすっかり無視してました(^^;
魔界の仮面弁士さんのレス見るまで気付かなかったです。
私のレスも無視してやって下さい。

投稿時間:2004/09/03(Fri) 17:04
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: SQLのSUMについて
元のデータがどのような内容かがわからないので、状況が良く分かりませんが、
単にグループ化をやめて、
   SELECT COUNT(*) AS レコード数
   FROM 売上データ WHERE 処理日付='2004/09/03'
では駄目なのでしょうか。


もしも、何らかの理由でグループ化が必要ならば、たとえば
Jetなら、
  SELECT SUM(レコード数) AS 総数 FROM [SELECT 顧客コード,店コード,COUNT(*) AS レコード数
  FROM 売上データ WHERE 処理日付='2004/09/03' GROUP BY 顧客コード,店コード].

Oracle/SQL Serverなら、
  SELECT SUM(レコード数) AS 総数 FROM (SELECT 顧客コード,店コード,COUNT(*) AS レコード数
  FROM 売上データ WHERE 処理日付='2004/09/03' GROUP BY 顧客コード,店コード)

…でどうでしょう。

投稿時間:2004/09/04(Sat) 17:51
投稿者名:みそっこ
Eメール:
URL :
タイトル:
Re^2: SQLのSUMについて
nanashiさま、仮面弁士さま、とてもすばやいレスありがとうございます!
舌足らずで申し訳ありません・・DBはSQLserverで、問題のグループ化は必須です・・。
仕様は 条件:日付  集計条件:顧客コード,店コード となっております。
仮面弁士さまのSQLで試したのですが駄目でした・・・。同じような結果が返ってきてしまいます。
また月曜格闘したいと思っています。ご協力本当にありがとうございましたm(_ _)m

投稿時間:2004/09/04(Sat) 19:42
投稿者名:Say
Eメール:
URL :
タイトル:
Re^3: SQLのSUMについて
SELECT count(*) as 総数
FROM 売り上げデータ  
WHERE  EXISTS  (
SELECT count(*) as レコード数
FROM 売り上げデータ
WHERE 処理日付 = '2004/09/03'  
GROUP BY 顧客コード,店コード
)

とか?

投稿時間:2004/09/06(Mon) 09:54
投稿者名:みそっこ
Eメール:
URL :
タイトル:
Re^4: SQLのSUMについて
ご報告申し上げます!!
SAYさまのSQLで動きました!!
みなさん本当にありがとうございました!!
魔界弁士さまのSQLでもぜんぜん問題無いように
思うのですけどどこかで私がミスっていたのかもしれません・・・。
まだまだ修行が足りないのでがんばります!
これで仕事が進められます!
本当にありがとうございました!

投稿時間:2004/09/06(Mon) 14:08
投稿者名:みそっこ
Eメール:
URL :
タイトル:
Re: またまた問題発生!SQLのSUMについて
>  SELECT count(*) as レコード数
>   FROM 売り上げデータ
>   WHERE 処理日付 = '2004/09/03'  
> GROUP BY 顧客コード,店コード
>
> とするとレコード数が
> 1
> 2
> 1
> 3
> のように返ってくるのですがこれをSUMで
> 値を1+2+1+3=7で"7"を取得するには

一度解決した問題をまた取り上げて申し訳ございません。
もう一度ご相談させてください・・・。
SUMで7ではなくて行数の4という数字を
取得するという仕様だったことに今気づいてとても焦っております、
今必死にがんばっているのですがやっぱりうまく取得できません。
バカですみません・・・。
先生方、お時間がよろしければご協力お願いいたします・・・。m(_ _)m

投稿時間:2004/09/06(Mon) 14:43
投稿者名:みそっこ
Eメール:
URL :
タイトル:
Re^2: 自己解決しました!SQLのSUMについて
sayさまのSQLを参考にして
SELECT count(*)
FROM  (
SELECT count(*) as レコード数
FROM 売り上げデータ
WHERE 処理日付 = '2004/09/03'  
GROUP BY 顧客コード,店コード
)as 総数

でうまく取得できました!お騒がせいたしました!!