你不告诉我们你使用的DB(我期望MySQL);
然后你有很多错误在你的查询,并可能在你的算法。
这是我想你可能照顾:
SQL Fiddle
的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)
;
查询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`
Results:
| 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 |
查询2:
-- 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`
Results:
| 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 |
请纠正你的问题:与产品,公司,BNO和MRP的数量应该是10,不是30 ... – nabuchodonossor
解释你是如何得到30作为期望的结果。我得到2 + 8 = 10。另外20个用于不同的产品。 –
你想按日期分组吗?但是你想在结果表中记录什么日期? MAX(日期)? –