我要这样的 WHERE 才 SUM, 它没满足 where 咋也 sum 了?

他俩品名不一样,怎么给加上了。一个名为CP,一个名为CP2,不应该加一起去啊。


SQL code
mysql> DESCRIBE LSB//
+-------+-----------+------+-----+---------+-------+
| Field | Type      | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| 品名  | char(255) | NO   | PRI |         |       |
| 颜色  | char(255) | NO   | PRI |         |       |
| 规格  | char(255) | NO   | PRI |         |       |
| 单位  | char(255) | NO   | PRI |         |       |
+-------+-----------+------+-----+---------+-------+
4 rows in set (0.01 sec)。

mysql> DESCRIBE 入库单表//
+------------+----------+------+-----+---------+-------+
| Field      | Type     | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| 单号       | text     | YES  |     | NULL    |       |
| 入库日期   | datetime | YES  |     | NULL    |       |
| 品名       | text     | YES  |     | NULL    |       |
| 供货商编号 | text     | YES  |     | NULL    |       |
| 颜色       | text     | YES  |     | NULL    |       |
| 规格       | text     | YES  |     | NULL    |       |
| 数量       | int(11)  | YES  |     | NULL    |       |
| 单位       | text     | YES  |     | NULL    |       |
| 单价       | double   | YES  |     | NULL    |       |
| 金额       | double   | YES  |     | NULL    |       |
+------------+----------+------+-----+---------+-------+
10 rows in set (0.00 sec)

mysql> SELECT*FROM 入库单表//
+------+---------------------+--------------+----------------+------+------+----
--+------+------+------+
| 单号 | 入库日期            | 品名         | 供货商编号     | 颜色 | 规格 | 数
量 | 单位 | 单价 | 金额 |
+------+---------------------+--------------+----------------+------+------+----
--+------+------+------+
| 001  | 2011-05-16 16:03:02 | CP           |                |      |      |   1
2 |      |    5 |   60 |
|      | 2011-05-23 15:21:29 | 水杯         |                ||      |
0 |      |    0 |    0 |
|      | 2011-05-23 15:21:29 | 水杯         |                ||      |
0 |      |    0 |    0 |
|      | 2011-05-23 15:21:29 | SQL 入门经典 | 人民邮电出版社 |      |      |
0 |      |    0 |    0 |
|      | 2011-05-24 20:52:12 | CP2          |                |      |      |
5 |      |    0 |    0 |
+------+---------------------+--------------+----------------+------+------+----
--+------+------+------+
5 rows in set (0.00 sec)

mysql> SELECT * FROM LSB//
+--------------+------+------+------+
| 品名         | 颜色 | 规格 | 单位 |
+--------------+------+------+------+
| CP           |      |      |      |
| CP2          |      |      |      |
| SQL 入门经典 |      |      |      |
| 水杯         ||      |      |
+--------------+------+------+------+
4 rows in set (0.00 sec)


C/C++ code
mysql_query(conn,"insert into lsb_rkzl select  入库单表.品名, 入库单表.颜色, 入库单表.规格, 入库单表.单位, SUM(数量) FROM 入库单表 \
     INNER JOIN LSB \
      ON \
     LSB.品名       = 入库单表.品名  AND       \
     LSB.颜色       = 入库单表.颜色  AND       \
     LSB.规格       = 入库单表.规格  AND       \
     LSB.单位       = 入库单表.单位 " );


SQL code
mysql> SELECT * FROM LSB_RKZL//
+------+------+------+------+------+
| 品名 | 颜色 | 规格 | 单位 | 总量 |
+------+------+------+------+------+
| CP   |      |      |      |   17 |
+------+------+------+------+------+
1 row in set (0.00 sec)

作者: xiaoyuanyuan2009   发布时间: 2011-05-24

你的GROUP BY在哪儿?

直接把你的 select 入库单表.品名, 入库单表.颜色, 到MYSQL中试一下。

作者: ACMAIN_CHM   发布时间: 2011-05-24

LSB的四个列都是primary key?

作者: rucypli   发布时间: 2011-05-24