如何在sql中求唯一记录的值之和

如何在sql中求唯一记录的值之和,sql,group-by,Sql,Group By,我有一个包含以下列的表: ProductName copmanyname arianame bno mrp exp_date Date qty DANZEN DS HELIX PHARMA CITY 1 J026 215 01-Feb-16 30-Oct-19 41 DANZEN DS HELIX PHARMA CITY 2 J026 215 01-Feb-16 30-Aug-19 2 HIPRO

我有一个包含以下列的表:

ProductName copmanyname arianame    bno     mrp  exp_date   Date        qty 
DANZEN DS   HELIX PHARMA    CITY 1  J026    215 01-Feb-16   30-Oct-19   41  
DANZEN DS   HELIX PHARMA    CITY 2  J026    215 01-Feb-16   30-Aug-19   2   
HIPRO       HELIX PHARMA    CITY 1  J035    225 01-Feb-16   30-Nov-18   20  
NOGARD      HELIX PHARMA    CITY 1  J010    135 01-Feb-16   30-Nov-20   2   
NOGARD      HELIX PHARMA    CITY 2  J010    135 01-Feb-16   30-Nov-20   8   
NOGARD      HELIX PHARMA    TANK    J004    135 01-Feb-16   30-May-20   1   
ALINAMIN F  HELIX PHARMA    CITY 1  I002    195 02-Feb-16   30-Sep-19   2   
ALINAMIN F  HELIX PHARMA    CITY 2  H003    195 02-Feb-16   30-Nov-18   1   
我想显示特定日期的记录,哪些记录有相同的产品和公司,bno和mrp,然后这些记录的数量将总和。如上表所示:

ProductName copmanyname arianame    bno     mrp  exp_date   Date        qty
NOGARD      HELIX PHARMA    CITY 1  J010    135 01-Feb-16   30-Nov-20   30  
我尝试使用下面的语句,但它并没有汇总数量,而是显示所有记录

SELECT  
    ProductName, CopmanyName, AriaName, bno, mrp, exp_date, 
    Sum(quantity) AS qty 
FROM
    q_saledetail
GROUP BY 
    ProductName, CopmanyName, AriaName, bno, mrp, exp_date,date 
WHERE
    date = any date

为了澄清其他意见:

ProductName copmanyname arianame    bno     mrp  exp_date   Date        qty 
DANZEN DS   HELIX PHARMA    CITY 1  J026    215 01-Feb-16   30-Oct-19   41  
DANZEN DS   HELIX PHARMA    CITY 2  J026    215 01-Feb-16   30-Aug-19   2  
                            ^ can you see the different arianame? ^^^ date??

HIPRO       HELIX PHARMA    CITY 1  J035    225 01-Feb-16   30-Nov-18   20  

NOGARD      HELIX PHARMA    CITY 1  J010    135 01-Feb-16   30-Nov-20   2   
NOGARD      HELIX PHARMA    CITY 2  J010    135 01-Feb-16   30-Nov-20   8   
NOGARD      HELIX PHARMA    TANK    J004    135 01-Feb-16   30-May-20   1   
                            ^ again ^^^^

ALINAMIN F  HELIX PHARMA    CITY 1  I002    195 02-Feb-16   30-Sep-19   2   
ALINAMIN F  HELIX PHARMA    CITY 2  H003    195 02-Feb-16   30-Nov-18   1 
                            ^ and   ^^^^                    ^^^^^^^^^

如果你看一看NOGARD:你有3个不同的行-它们不能分组。如果您不使用arianame和bno,那么您可以将NOGARD分组为数量10…

以明确其他注释:

ProductName copmanyname arianame    bno     mrp  exp_date   Date        qty 
DANZEN DS   HELIX PHARMA    CITY 1  J026    215 01-Feb-16   30-Oct-19   41  
DANZEN DS   HELIX PHARMA    CITY 2  J026    215 01-Feb-16   30-Aug-19   2  
                            ^ can you see the different arianame? ^^^ date??

HIPRO       HELIX PHARMA    CITY 1  J035    225 01-Feb-16   30-Nov-18   20  

NOGARD      HELIX PHARMA    CITY 1  J010    135 01-Feb-16   30-Nov-20   2   
NOGARD      HELIX PHARMA    CITY 2  J010    135 01-Feb-16   30-Nov-20   8   
NOGARD      HELIX PHARMA    TANK    J004    135 01-Feb-16   30-May-20   1   
                            ^ again ^^^^

ALINAMIN F  HELIX PHARMA    CITY 1  I002    195 02-Feb-16   30-Sep-19   2   
ALINAMIN F  HELIX PHARMA    CITY 2  H003    195 02-Feb-16   30-Nov-18   1 
                            ^ and   ^^^^                    ^^^^^^^^^

如果你看一看NOGARD:你有3个不同的行-它们不能分组。如果您不使用arianame和bno-那么您可以将NOGARD分组为数量10…

您没有告诉我们您使用的数据库(我希望是MySQL)

然后,您的查询中有很多bug,可能在算法中也有

这就是我认为你可以照顾的:

MySQL 5.6架构设置

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |
查询1

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |
查询2

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |

你没有告诉我们你使用的数据库(我希望是MySQL)

然后,您的查询中有很多bug,可能在算法中也有

这就是我认为你可以照顾的:

MySQL 5.6架构设置

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |
查询1

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |
查询2

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |

CREATE TABLE q_saledetail
    (`ProductName` varchar(10), `copmanyname` varchar(12), `arianame` varchar(6), `bno` varchar(4), `mrp` int, `exp_date` varchar(9), `Date` varchar(9), `qty` int)
;

INSERT INTO q_saledetail
    (`ProductName`, `copmanyname`, `arianame`, `bno`, `mrp`, `exp_date`, `Date`, `qty`)
VALUES
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 1', 'J026', 215, '01-Feb-16', '30-Oct-19', 41),
    ('DANZEN DS', 'HELIX PHARMA', 'CITY 2', 'J026', 215, '01-Feb-16', '30-Aug-19', 2),
    ('HIPRO', 'HELIX PHARMA', 'CITY 1', 'J035', 225, '01-Feb-16', '30-Nov-18', 20),
    ('NOGARD', 'HELIX PHARMA', 'CITY 1', 'J010', 135, '01-Feb-16', '30-Nov-20', 2),
    ('NOGARD', 'HELIX PHARMA', 'CITY 2', 'J010', 135, '01-Feb-16', '30-Nov-20', 8),
    ('NOGARD', 'HELIX PHARMA', 'TANK', 'J004', 135, '01-Feb-16', '30-May-20', 1),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 1', 'I002', 195, '02-Feb-16', '30-Sep-19', 2),
    ('ALINAMIN F', 'HELIX PHARMA', 'CITY 2', 'H003', 195, '02-Feb-16', '30-Nov-18', 1)
;
SELECT  
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, arianame, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | arianame |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|----------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |   CITY 1 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        2 |
|      NOGARD | HELIX PHARMA |   CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |        8 |
 -- or if you want to group by  `arianame` too

SELECT  
    ProductName, copmanyname, GROUP_CONCAT(arianame), bno, mrp, exp_date,`Date`,
    Sum(qty) AS quantity
FROM
    q_saledetail
WHERE
    `Date` = '30-Nov-20'
GROUP BY 
    ProductName, copmanyname, bno, mrp, exp_date,`Date`
| ProductName |  copmanyname | GROUP_CONCAT(arianame) |  bno | mrp |  exp_date |      Date | quantity |
|-------------|--------------|------------------------|------|-----|-----------|-----------|----------|
|      NOGARD | HELIX PHARMA |          CITY 1,CITY 2 | J010 | 135 | 01-Feb-16 | 30-Nov-20 |       10 |

您问题中的查询与您要求得到的结果有很大不同。此外,您所需的输出似乎在数量上有所减少

如果您想要数量的总和,其中Productname、companyname、bno和mrp是相同的,那么按exp_日期和日期分组是错误的

如果你看看这个,我已经按一个随机日期过滤,然后按你提到的4列进行分组

SELECT  
    ProductName, companyName, bno, mrp, SUM(qty) as Quantity

FROM
    FiddleTable
WHERE [date] = '30-Nov-20'
GROUP BY 
    ProductName, companyName, bno, mrp

您问题中的查询与您要求得到的结果有很大不同。此外,您所需的输出似乎在数量上有所减少

如果您想要数量的总和,其中Productname、companyname、bno和mrp是相同的,那么按exp_日期和日期分组是错误的

如果你看看这个,我已经按一个随机日期过滤,然后按你提到的4列进行分组

SELECT  
    ProductName, companyName, bno, mrp, SUM(qty) as Quantity

FROM
    FiddleTable
WHERE [date] = '30-Nov-20'
GROUP BY 
    ProductName, companyName, bno, mrp


请更正您的问题:对于产品、公司、bno和mrp,数量应该是10,而不是30…请解释如何获得30作为预期结果。我得到2+8=10。另外20个用于不同的产品。你想按日期分组,对吗?但是你想在结果表中列出什么日期呢?最大(日期)?“哪个记录有相同的产品和公司以及bno和mrp,然后这些记录的数量将总和”>这将导致
数量
为10根据您的样本,您的预期输出有
数量
为30。这是用于哪个RDBMS的?请添加一个标记,以指定您使用的是
mysql
postgresql
sqlserver
oracle
还是
db2
-或其他任何东西。请更正您的问题:对于产品、公司、bno和mrp,数量应该是10,而不是30…解释如何获得30作为期望结果。我得到2+8=10。另外20个用于不同的产品。你想按日期分组,对吗?但是你想在结果表中列出什么日期呢?最大(日期)?“哪个记录有相同的产品和公司以及bno和mrp,然后这些记录的数量将总和”>这将导致
数量
为10根据您的样本,您的预期输出有
数量
为30。这是用于哪个RDBMS的?请添加一个标记来指定您使用的是
mysql
postgresql
sqlserver
oracle
还是
db2
——或者完全是其他什么。或者,如果您想要从CITY获得这些,并且不考虑坦克,您可以在WHERE子句中添加WHERE AriaName,比如“CITY%”这将得到10.NOGARD HELIX PHARMA CITY 1 J010 135 01-Feb-16 30-Nov-20 2 NOGARD HELIX PHARMA CITY 1 J010 135 01-Feb-16 30-Nov-20 8 NOGARD HELIX PHARMA CITY 1 J004 135 01-Feb-16 30-May-20 1至J010和J004混合->非一组的总数。如果您使用的是mysql,请查看blag->中的答案,如果这是您需要的答案,请将其作为答案接受,这样任何人都可以看到您是对的。但我完全明白你的建议。非常感谢它的帮助。或者如果你想从城市和忽视坦克你可以添加一个WHERE条款---WHERE名称像“城市%”这将得到10.NOGARD HELIX PHARMA CITY 1 J010 135 01-Feb-16 30-Nov-20 2 NOGARD HELIX PHARMA CITY 1 J010 135 01-Feb-16 30-Nov-20 8 NOGARD HELIX PHARMA CITY 1 J004 135 01-Feb-16 30-May-20 1至J010和J004混合->非一组的总数。如果您使用的是mysql,请查看blag->中的答案,如果这是您需要的答案,请将其作为答案接受,这样任何人都可以看到您是对的。但我完全明白你的建议。谢谢你的帮助。谢谢你,我从上面的建议中得到了想法,我的工作完成了。实际上我想用数量之和在一个地方显示具有相同名称、相同bno和相同mrp显示的产品记录。在你的指导下做得很好。感谢所有我从以上建议中得到的想法,我的工作已经完成了。实际上我想用数量之和在一个地方显示具有相同名称、相同bno和相同mrp显示的产品记录。在你的指导下做得很好。谢谢