如何在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显示的产品记录。在你的指导下做得很好。谢谢