No.1
- 回答日時:
データベースはなんでしょう?Accessを前提にすると。
一日だけの集計なら
SELECT SUM(金額) AS 購入金額 FROM 売上
WHERE 顧客ID = お客様ID
AND FORMAT(購入日付, "YYYYMMDD") = FORMAT(現在日付, "YYYYMMDD")
顧客IDと購入日付は売上テーブルに設定されてるものとします。
お客様IDと現在日付はフォームから取得するものとします。
一覧形式で日付ごとに集計するのなら、
SELECT 顧客ID,購入日付,SUM(金額) AS 購入金額 FROM 売上
WHERE FORMAT(購入日付, "YYYYMMDD") BETWEEN FORMAT(開始日付, "YYYYMMDD") AND FORMAT(終了日付, "YYYYMMDD")
で、でてくるはずです。
ありがとうございます。VBで取得した日付をSELECT文でどう条件として組み込むかが・・・
FORMATはSQL内でも使用可能でしょうか?
現在も頭を悩ませ中です。
UriageSQL = "SELECT Sum(売上額) as 売上額 FROM 売上 WHERE 売上日=" & "#" & strDATE & "#"
では、SQLのステートメントが間違っているというエラーがでます。
No.2ベストアンサー
- 回答日時:
すむません。
抜けがありました。SELECT 顧客ID,購入日付,SUM(金額) AS 購入金額 FROM 売上
WHERE FORMAT(購入日付, "YYYYMMDD") BETWEEN FORMAT(開始日付, "YYYYMMDD") AND FORMAT(終了日付, "YYYYMMDD")
GRUOP BY 顧客ID,購入日付
でした。「GRUOP BY 顧客ID,購入日付」が抜けてました。
>FORMATはSQL内でも使用可能でしょうか?
DBがアクセスなら使えます。
>UriageSQL = "SELECT Sum(売上額) as 売上額 FROM 売上 WHERE 売上日=" & "#" & strDATE & "#"
でエラーとなるのは、売上日と条件設定が合ってないじゃないかと思いますが?
売上日は日付タイプの項目でしょうか?日付項目なら、SELECT SUM(金額) AS 購入金額 FROM 売上
WHERE FORMAT(購入日付, "YYYYMMDD") = FORMAT(現在日付, "YYYYMMDD")
で集計できるはずですが…。
strDATE = Format(Now, "yyyy/mm/dd")
uriageSQL = "SELECT SUM(売上額) AS 売上額 FROM 売上 WHERE Format(売上日, "yyyy/mm/dd") = Format(Now, "yyyy/mm/dd")"
これでも、ステートメントのエラーが発生します・・・
使用しているのはアクセスなので、大丈夫だと思っているのですが・・・
No.3
- 回答日時:
う~~~む。
SQL文そのものは、正しいです。間違っていません。
SQL文を発行するときの、オープンの仕方が違っているのかもしれませんね。
教えていただけますか?できれば、Set文から以降全部です…。
何度もありがとうございます。
関係あると思われる部分を以下に記述します。どうぞよろしくお願いします。
******************************************
'日付を文字列として取得する()
strDATE = Format(Now, "yyyy/mm/dd")
UriageSQL = "SELECT SUM(売上額) AS 売上額 FROM 売上 WHERE Format(売上日, "yyyy/mm/dd") = Format(Now, "yyyy/mm/dd")"
'レコードセットを取得
rs.Open "UriageSQL", cn, adOpenStatic, adLockOptimistic
'連結
Set lblSouUriage.DataSource = rs
End Sub
Private Sub Form_Load()
'接続
cn.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;" _
& "data source =C:\Documents and Settings\r76427.RSOA\My Documents\My eBooks\r76427\Seisan\myDB\PosSystemDB.mdb"
cn.Open
End Sub
Private Sub Form_Unload(Cancel As Integer)
cn.Close
End Sub
Private Sub Timer1_Timer()
lblTime.Caption = Now ' 日付と時間を返す
End Sub
******************************************
No.5
- 回答日時:
たぶん、
UriageSQL = "SELECT SUM(売上額) AS 売上額 FROM 売上 WHERE Format(売上日, " & chr(34) & "yyyy/mm/dd" & chr(34) &") = Format(Now, " & chr(34) & "yyyy/mm/dd" & chr(34) & ")"
ですね。文字列のダブルクォートのせいかも。
なかなかうまくいかなかったのですが・・
SQLから離れて、このように記述するとできましたよ!!参考までに以下にコードを記述しておきます。今回は大変ありがとうございました。次こそはSQLで書きたいものですが・・・(^^;)
*************************************
データベースで売上総額をクエリで作成(SELECT 売上額 GROUP BY売上日)
strDATE = "2003/05/09" '日付を固定してみました。
'レコードセットを取得
rs.Open "売上総額", cn, adOpenStatic, adLockOptimistic
'指定した日付を見つけるまでループ
Dim blnFlag As Boolean
blnFlag = False
Do Until blnFlag = True
If rs.EOF = True Then
blnFlag = True
MsgBox "指定した日付がみつかりません"
ElseIf rs!売上日 = strDATE Then
blnFlag = True
lblSouUriage.Caption = rs!売上総額
Else
rs.MoveNext
End If
Loop
End Sub
*************************************
このようにしましたら、何とか売上総額が表示されるようになりました。また問題解決の糸口が見つかりましたら、gooのどこかで情報提供しますね!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- その他(コンピューター・テクノロジー) 50台の織機から回転数を取得・集計しモニターに表示したい 2 2022/11/05 15:48
- SQL Server SQLについて質問です。 日付値の計算の練習で、dual表を用いて、 今日の日付、誕生日、生まれてか 1 2022/05/13 20:42
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスクエリの計算
-
FROM の中で CASE を使えるでし...
-
Accessで年齢から年代ごとの集計
-
ACCESSのクエリで集計で、先頭...
-
「警告 : NULL 値は集計または...
-
AccessからExcelへエクスポート...
-
ファイルメーカーでピボットテ...
-
クロス集計の結果を元に戻す方法
-
複数列フィールド値のクロス集計
-
ACCESS レポートでページごとに...
-
ロータス関数について(簡単編)
-
Excel 2019 のピボットテーブル...
-
【Access】フォームで自動計算...
-
エクセルVBAで5行目からオート...
-
列が存在しないと言われる
-
Accessでテーブル名やクエリ名...
-
「直需」の意味を教えてください
-
Oracle 2つのDate型の値の差を...
-
Accessのフィールド数が255しか...
-
INSERTできるレコード数を制限...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのクエリで集計で、先頭...
-
FROM の中で CASE を使えるでし...
-
AccessからExcelへエクスポート...
-
複数列フィールド値のクロス集計
-
Accessフォームにクロス集計ク...
-
VBA 得意先ごと且つ日付ごとに...
-
access 存在しない項目を”0件”...
-
桐の集計(集計行設定のこと)...
-
「警告 : NULL 値は集計または...
-
クロス集計の結果を元に戻す方法
-
Accessで別テーブルの個数をユ...
-
Access 抽出データ件数のカウン...
-
MS-Accessのクロス集計クエリと...
-
アクセス レポートのテキスト...
-
accessクロス集計で前月21日~...
-
クエリを使って縦に一行ずつ足...
-
Accessで年齢から年代ごとの集計
-
レポートウィザードの集計のオ...
-
絶対値ごとに集計したい
-
アクセスクエリ 締め日毎で絞...
おすすめ情報