理论问题在这里:
为什么指定table.field IS NULL或table.field IS NOT NULL不能在连接条件(例如,左连接或右连接)上工作,而只能在where条件下工作?
非工作示例:
- 这应该返回所有已过滤掉任何退货(非空值)的货件.但是,无论是否满足[r.id is null]语句,都会返回所有货件.
SELECT
*
FROM
shipments s
LEFT OUTER JOIN returns r
ON s.id = r.id
AND r.id is null
WHERE
s.day >= CURDATE() - INTERVAL 10 DAY
Run Code Online (Sandbox Code Playgroud)
工作范例:
- 返回正确的行数,即总出货量,减去与退货相关的任何行数(非空值).
SELECT
*
FROM
shipments s
LEFT OUTER JOIN returns r
ON s.id = r.id
WHERE
s.day >= CURDATE() - INTERVAL 10 DAY
AND r.id is null
Run Code Online (Sandbox Code Playgroud)
为什么会这样?连接的两个表之间的所有其他过滤条件都可以正常工作,但由于某种原因,除非在where语句中,否则IS NULL和IS NOT NULL过滤器不起作用.
这是什么原因?
我很困惑为什么我不能msgbox这个加入数组.我可以做到这一点,如果我创建一个带有类型化值的静态数组,但是从excel获得一系列值我不断得到"无效的过程调用或参数"
我做了大量的研究,但我找不到任何这个问题的例子.我在这做错了什么?
Sub From_sheet_make_array()
Dim myarray() As Variant
Dim dudeString As String
myarray() = Range("B2:B10").Value
dudeString = Join(myarray(), ", ")
MsgBox dudeString
End Sub
Run Code Online (Sandbox Code Playgroud) 我已尝试在我的本地数据库的连接字符串上进行50多次不同的尝试,似乎没有任何工作.我本质上只是试图打开数据库文件的连接,所以我可以转储我从excel电子表格中提取的数据.我正在使用Visual C#制作离线winform应用程序.
无论我在app.config中尝试什么连接字符串,它总是在尝试将"dReader"写入数据库时失败.
错误通常取决于我尝试的字符串:
"建立与SQL Server的连接时发生与网络相关或特定于实例的错误.未找到服务器或无法访问服务器.验证实例名称是否正确以及SQL Server是否配置为允许远程连接.(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)"
我已经浏览了许多在线示例和资源,似乎没有任何工作.我希望这里有人可以指出它为什么会失败.
这是我最新形式的app.config:
<connectionStrings>
<add name="DDP_Project.Properties.Settings.DDP_DatabaseConnectionString"
connectionString="Data Source=E:\Other DDP Projects\DDP_Project_SDF\DDP_Project\DDP_Database.sdf;"
providerName="Microsoft.SqlServerCe.Client.3.5" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
这是我的表单代码:
private void Profiles_Click(object sender, EventArgs e)
{
profilesDialog.FileName = "[YOUR_UPLOAD_FILE_HERE]";
var result = profilesDialog.ShowDialog();
if (result == DialogResult.OK)
{
HandleFileSelection();
}
}
private void HandleFileSelection()
{
var file = profilesDialog.FileName;
// Create a connection to the file datafile.sdf in the program folder
string dbfile = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + "\\DDP_Database.sdf";
SqlCeConnection connection = new SqlCeConnection("datasource=" + dbfile);
string …Run Code Online (Sandbox Code Playgroud) 我在下面有这个VBA,旨在遍历每个WS并插入每个数据集的前4行.
这在with内部工作正常,但只允许我指定一个工作表,而不是全部通过它们.我把它带出来并得到"无效或不合格的参考".在此之后我添加了ActiveSheet.到'细胞'方法.
现在我收到以下错误:
"ODBC驱动程序不支持所请求的属性"
我如何才能获得.Cells资格?还是有替代方案吗?我正在使用excel 2010和mysql.
Public Function InsertData()
Dim rs As ADODB.Recordset
Dim oConn As ADODB.Connection
Dim WS As Worksheet
Dim strsql As String
Set rs = New ADODB.Recordset
Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=server.host.com;" & _
"DATABASE=datatime;" & _
"USER=boulders;" & _
"PASSWORD=rocks;" & _
"Option=3"
For Each WS In ActiveWorkbook.Worksheets
For rowcursor = 4 To 8
strsql = "INSERT INTO workflow_metrics (id, code) " & _
"VALUES (" & (ActiveSheet.Cells(rowcursor, …Run Code Online (Sandbox Code Playgroud)