Dim sqlS48O As String = "SELECT SUM([S48日产油]) AS 总产量 FROM 产量表 WHERE S48日期<#1999/6/7#;"
Dim sqlS48W As String = "SELECT SUM([S48日产水]) AS 总产量 FROM 产量表 WHERE S48日期<#1999/6/7#;"
Dim sqlT40O As String = "SELECT SUM([T40日产油]) AS 总产量 FROM 产量表 WHERE T40日期<#2006/5/5#;"
Dim sqlT40W As String = "SELECT SUM([T40日产水]) AS 总产量 FROM 产量表 WHERE T40日期<#2006/5/5#;"
如何把这四句合并成一句
比如Dim sqlAs String = "SELECT SUM([S48日产油]),SUM([S48日产水]),SUM([T40日产油]) ,SUM([T40日产水]) AS 总产量 FROM 产量表 WHERE S48日期<#1999/6/7#;, WHERE S48日期<#1999/6/7#;, WHERE T40日期<#2006/5/5#;,WHERE T40日期<#2006/5/5#;"
这样并不对 意思是这个意思
就是 前边不同的SUM 要对用不同的WHERE
还是 一个sql语句只能有一个查询条件
我的数据库用法好像很非主流哈哈

不选择相同的选择条件是因为 每口井的生产开始时间 和中间的终断什么的都有区别
要不就把所有的井的生产时间都从1997年开始 后边的数据弄成0这样时间就统一了 但是原始数据量很大 不好处理
前边有人说加and 那是不是每个数据都要满足所有的条件
但 我这个的意思就是 各个井对应自己的生产日期 和别的井没关系
上次操作失误 没给你分 这次多给你点@ running_crazy
额还有一点 那个时间要人为输入的 不是要固定的写在代码里 就是在一个文本框中输入截止时间 代码里是不是要这样#“&textbox1.text&”# 但是这样好像不行 不知道我说明白我的意思了没
------解决思路----------------------
你这样几个不同的东西完全可以放在四张表里,没必要放在一张表里,一张表里的内容是都有相互关系的,你的表里几个好像没有什么关系, 而且查询的时候Where后面的条件是针对前面所有的查询的,并不能不同的条件对应不同的查询.
TextBox输入当成一个字符串输入就行了
下面两种情况都可以
Dim sql As String = "SELECT SUM([产量(吨)]) AS 总产量 FROM 产量表 WHERE 日期<#" + TextBox1.Text + "#;"
Dim sql As String = String.Format("SELECT SUM([产量(吨)]) AS 总产量 FROM 产量表 WHERE 日期<#{0}#;", TextBox1.Text)
------解决思路----------------------
表设计不合理,把日产水、日产油等合并成一个字段,然后用一个类型字段
做成4条记录,外键关联另一个表的公共数据。
------解决思路----------------------
日数据表应该转化为(井ID,日期,产油,产水,注水)
再加个井信息表(井ID,生产日期)
SELECT a.井ID,
SUM(b.产油) 总产油,
SUM(b.产水) 总产水
FROM 井信息表 a
LEFT JOIN 日数据表 b
ON a.井ID = b.井ID
AND a.日期 < b.生产日期
WHERE a.井ID IN ('T40','S48')
GROUP BY a.井ID