【问题标题】:SQL Date groupingSQL 日期分组
【发布时间】:2017-12-23 16:27:18
【问题描述】:

我想询问有关 SQL Server 2005 与其他 sum 字段的日期分组。

| tanggal             | nama                    | qty  |
|---------------------|-------------------------|------|
| 2017-07-11 06:25:00 | APEL                    | 4.00 |
| 2017-07-11 06:25:00 | SUSU KENTAL MANIS PUTIH | 4.00 |
| 2017-07-11 06:29:00 | APEL                    | 4.00 |
| 2017-07-11 06:29:00 | SUSU KENTAL MANIS PUTIH | 4.00 |
| 2017-07-10 06:29:00 | APEL                    | 2.00 |
| 2017-07-10 06:29:00 | SUSU KENTAL MANIS PUTIH | 2.00 |
| 2017-07-11 00:00:00 | APEL                    | 1.00 |
| 2017-07-11 00:00:00 | SUSU KENTAL MANIS PUTIH | 1.00 |

我需要这样的结果

| Tanggal    | Barang                  | Jumlah |
|------------|-------------------------|--------|
| 2017-07-10 | APEL                    | 2.00   |
| 2017-07-10 | SUSU KENTAL MANIS PUTIH | 2.00   |
| 2017-07-11 | APEL                    | 9.00   |
| 2017-07-11 | SUSU KENTAL MANIS PUTIH | 9.00   |

这是代码

select j.tanggal [Tanggal],p.nama [Barang],sum(p.qty) [Jumlah] 
from proses p
left join jual j on j.kode=p.kode 
group by j.tanggal,p.kodeItem,p.nama,p.unit,p.kode

【问题讨论】:

    标签: sql date sql-server-2005 group-by


    【解决方案1】:

    试试这个:

    select j.tanggal [Tanggal],p.nama [Barang],sum(p.qty) [Jumlah] 
    
    from proses p
    left join jual j on j.kode=p.kode 
    
    order by date
    

    如果这不起作用,您可以尝试使用 union 而不是 join。

    【讨论】:

      【解决方案2】:

      使用CAST 将第一列从日期时间更改为日期,组中有一些不必要的列我也删除了:

      select 
      cast(j.tanggal as date) [Tanggal],
      p.nama [Barang],
      sum(p.qty) [Jumlah] 
      from proses p
      left join jual j on j.kode=p.kode 
      group by cast(j.tanggal as date),p.nama
      

      【讨论】:

      • 分组日期仍然无效,但感谢您的回答。 j.tanggal as smalldatetime
      猜你喜欢
      • 1970-01-01
      • 2010-10-17
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      相关资源
      最近更新 更多