1つの列の2つの日付間のSQL合計データ

デビッドグレイグ

次のような注文のテーブルがあります。

t1

+-----------+---------+------------+
| client ID | order q | order date |
+-----------+---------+------------+
|     01    |  100    | 01-02-2016 |
|     01    |  350    | 03-05-2016 |
+-----------+---------+------------+

そして、私は売上高の2番目のテーブルを持っています:

t2

+-----------+-------+------------+
| client ID | sales | sales date |
+-----------+-------+------------+
|   01      | 50    | 03-02-2016 |
|   01      | 50    | 10-02-2016 |
|   01      | 300   | 04-05-2016 |
|   01      | 50    | 15-05-201  |
+-----------+-------+------------+  

目的はSUM、最初の注文日よりも多く、2番目の注文日よりも少ない売上を獲得することです。

結果

+-----------+---------+-------+
| cliend ID | order q | sales |
+-----------+---------+-------+
|  01       | 100     | 100   |
|  01       | 350     | 350   |
+-----------+---------+-------+

最初のアイデアは、注文日の評価を次のようにすることです

DENSE_RANK() OVER(PARTITION BY [client ID] ORDER BY [order date] ASC) AS R

次に、次のようなことを行います。

select
    client ID,
    order q,
    sum (sales) as sales
from 
    t2  
left outer join
    t2.client ID = t1.client ID
where 
    [sales date] >= [order date] 
    and [sales date] <= [order date] in (select [order date] 
                                         from t2 
                                         where (R < (R+1)))
group by 
    client ID, order q

私はこれが間違っていることを知っていますが、これは私の頭の中の論理です。

これを行う方法についていくつかアイデアを教えていただけますか?

Serg

日付間の合計のように見えます。次の注文日を除いて、現在の注文日を含めることを想定しています。

select t.clientID, fromdate, sum(sales) 
from (
    select clientID,orderq
        , fromdate = orderdate
        , todate = dateadd(dd, -1, lead(orderdate,1,cast('2100-01-01' as date)) over(partition by clientID order by orderdate))
    from(
            values
            (01,100,cast('2016-02-01' as date)),
            (01,350,cast('2016-05-03' as date))
        ) orders(clientID,orderq,orderdate)
    ) t
join( 
        values  
        (01,50  ,cast('2016-02-03' as date)),
        (01,50  ,cast('2016-02-10' as date)),
        (01,300 ,cast('2016-05-04' as date)),
        (01,50  ,cast('2016-05-15' as date))
    ) sales(clientID, sales,salesdate)
    on sales.salesdate between fromdate and todate
group by t.clientID, fromdate   

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQLServer日付ごとにグループ化された2つの日付間のデータの合計

分類Dev

2つの日付間の合計時間を見つける

分類Dev

mysqli2列の日付の間の1つの日付

分類Dev

2つの日付の間の日付の場合、Python Pandasは列の値を合計します

分類Dev

2つのデータフレーム間の日付列の比較

分類Dev

日付間の2つのデータフレームを結合する

分類Dev

Excel:1つの列の2つの列(日付の間)の日付範囲に基づいて合計する必要があります

分類Dev

2つの日付列の間のデータを取得します

分類Dev

SQL SERVER:2つの日付の間の合計日数を取得します

分類Dev

ElasticSearchの2つの日付間のフィールドの合計

分類Dev

2つの日付の間のデータを返す

分類Dev

日付フィールドに時刻と日付が含まれている場合、2つの日付の間のSQLデータを取得します

分類Dev

Rの2つの日付間の合計/カウント

分類Dev

2つの日付の間の合計日数C ++

分類Dev

日付列の2つの日付の間のデータフレームを選択します

分類Dev

2つの日付間の日付と時刻のデルタ

分類Dev

SQL:合計データを2つの列に整理する

分類Dev

2つの日付の間の日数を計算します(1つの日付は空白の場合があります)Googleスプレッドシート

分類Dev

2つの日付を持つ2つのテーブルから2つの列を合計する

分類Dev

2つの日付間のSpring Boot検索データ

分類Dev

2つの日付間のAndroid通話ログデータと同じ番号からの通話の合計時間。

分類Dev

1つの行タイプのない複数の日付間の時間の合計

分類Dev

1つの列MYSQLで2つの過去の日付の間の日付をグループ化する方法

分類Dev

Rの1つの列の2つの日付間の日数を計算する方法

分類Dev

2つの日付の間のPythonの毎週のデータフレーム

分類Dev

2つの日付の間のデータを見つける方法

分類Dev

2つの日付と1時間あたりの平均出力の間のデータを選択します

分類Dev

2つの日付列間の時差を計算する方法

分類Dev

共通の列がない他の2つの日付間の日付に基づいて2つのデータフレームをマージする

Related 関連記事

  1. 1

    SQLServer日付ごとにグループ化された2つの日付間のデータの合計

  2. 2

    2つの日付間の合計時間を見つける

  3. 3

    mysqli2列の日付の間の1つの日付

  4. 4

    2つの日付の間の日付の場合、Python Pandasは列の値を合計します

  5. 5

    2つのデータフレーム間の日付列の比較

  6. 6

    日付間の2つのデータフレームを結合する

  7. 7

    Excel:1つの列の2つの列(日付の間)の日付範囲に基づいて合計する必要があります

  8. 8

    2つの日付列の間のデータを取得します

  9. 9

    SQL SERVER:2つの日付の間の合計日数を取得します

  10. 10

    ElasticSearchの2つの日付間のフィールドの合計

  11. 11

    2つの日付の間のデータを返す

  12. 12

    日付フィールドに時刻と日付が含まれている場合、2つの日付の間のSQLデータを取得します

  13. 13

    Rの2つの日付間の合計/カウント

  14. 14

    2つの日付の間の合計日数C ++

  15. 15

    日付列の2つの日付の間のデータフレームを選択します

  16. 16

    2つの日付間の日付と時刻のデルタ

  17. 17

    SQL:合計データを2つの列に整理する

  18. 18

    2つの日付の間の日数を計算します(1つの日付は空白の場合があります)Googleスプレッドシート

  19. 19

    2つの日付を持つ2つのテーブルから2つの列を合計する

  20. 20

    2つの日付間のSpring Boot検索データ

  21. 21

    2つの日付間のAndroid通話ログデータと同じ番号からの通話の合計時間。

  22. 22

    1つの行タイプのない複数の日付間の時間の合計

  23. 23

    1つの列MYSQLで2つの過去の日付の間の日付をグループ化する方法

  24. 24

    Rの1つの列の2つの日付間の日数を計算する方法

  25. 25

    2つの日付の間のPythonの毎週のデータフレーム

  26. 26

    2つの日付の間のデータを見つける方法

  27. 27

    2つの日付と1時間あたりの平均出力の間のデータを選択します

  28. 28

    2つの日付列間の時差を計算する方法

  29. 29

    共通の列がない他の2つの日付間の日付に基づいて2つのデータフレームをマージする

ホットタグ

アーカイブ