我有两个表计划和Plandetails
我想要做的是根据
选择Plandetails的价格PlanNo,当前日期,FileNo from Plans
我想出了类似的东西,但它似乎无法正常工作
请注意,plandetails中还有一个列日期,也可能有当前日期。
例如
换句话说,我想根据表格计划中的当前日期汇总所有计划的价格
让我们说planno 6和7都有今天相同的日期,我想从plandetails中总结出价格总共470
从clinic.plandetails中选择planno in(选择planno来自clinic.plans WHERE date = curdate()和fileno ='"& fileno.Text&"&#39 ;
提前感谢。
答案 0 :(得分:0)
如果在Reult中制作了包含更多Field的Sample。如果您不想拥有,可以从SELECT中删除。
我Donr知道如何将VB中的String放入Query中。你必须改变它!!
SELECT p.PlanNo, CURDATE(), p.FileNo, SUM(pd.price)
FROM clinic.plans p
LEFT JOIN clinic.plandetails pd ON pd. planno = p. planno
WHERE pd.`date` = curdate()
AND p.fileno = 'fileno.Text';
我希望它有所帮助
我再次测试过。它看起来不错。见样本
<强>示例强>
MariaDB [(none)]> use clinic
Database changed
MariaDB [clinic]> select * from plans;
+--------+--------+------------+
| planno | fileno | date |
+--------+--------+------------+
| 5 | 2 | 2016-04-22 |
| 6 | 2 | 2016-04-22 |
| 7 | 2 | 2016-04-22 |
+--------+--------+------------+
3 rows in set (0.00 sec)
MariaDB [clinic]> select * from plandetails;
+----+--------+--------+-------+
| id | planno | fileno | price |
+----+--------+--------+-------+
| 1 | 6 | 2 | 80 |
| 2 | 6 | 2 | 90 |
| 3 | 7 | 2 | 100 |
| 4 | 7 | 2 | 100 |
| 5 | 7 | 2 | 100 |
+----+--------+--------+-------+
5 rows in set (0.00 sec)
MariaDB [clinic]> SELECT GROUP_CONCAT(DISTINCT(p.PlanNo) SEPARATOR ', ') , CURDATE(), p.FileNo, SUM(pd.price)
-> FROM clinic.plans p
-> LEFT JOIN clinic.plandetails pd ON pd. planno = p. planno
-> WHERE p.`date` = curdate()
-> AND pd.fileno = '2';
+---------------------------------------------------+------------+--------+---------------+
| GROUP_CONCAT(DISTINCT(p.PlanNo) SEPARATOR ', ') | CURDATE() | FileNo | SUM(pd.price) |
+---------------------------------------------------+------------+--------+---------------+
| 6, 7 | 2016-04-22 | 2 | 470 |
+---------------------------------------------------+------------+--------+---------------+
1 row in set (0.00 sec)
MariaDB [clinic]>