【问题标题】:asp.net SQL SUM clause with join on another table syntax errorasp.net SQL SUM 子句与另一个表的连接语法错误
【发布时间】:2021-06-08 23:03:50
【问题描述】:

我正在为 asp.net 网络表单开发 gridview 填充,并认为 SQL 语句与 mysql 相比具有相似的语法。

我有一个 CustomerList 和 CustomerTracking 表,其中 CustomerTracking 有一个链接到 CustomerList 表条目的 CustUUID。我还试图从 CustomerTracking 中的横幅中获取与 CustUUID 匹配的所有条目的总和

这是我要解析的 sql 语句。

string command2 = "SELECT b.Name, b.Link, SUM(t.CustomerTracking) as CustomerTrackingList, SUM(t.ClickCount) as ClickCount " +
                    "FROM CustomerList as b JOIN CustomerTracking as t" +
                    "IN b.CustUUID= t.CustUUID" +
                    "WHERE t.date> 11/21/2006";

也尝试过如下明确声明表名。

string command2 = "SELECT CustomerList.Name, CustomerList.Link, SUM(CustomerTrackingList.CustomerTracking) CustomerTracking, SUM(CustomerTrackingList.ClickCount) ClickCount " +
                    "FROM CustomerList JOIN CustomerTrackingList" +
                    "ON CustomerList.CustUUID = CustomerTracking.CustUUID" +
                    "WHERE CustomerTracking.date> 11/21/2006";

当我尝试在下面的代码隐藏文件中调用 sda.fill(dt) 时,我不断收到语法错误。语法是否正确,还是我缺少一些 asp.net 正在寻找的装饰器? 这是 Visual Studio 向我显示的错误!

System.Data.SqlClient.SqlException: 'Incorrect syntax near '.'.'
using (SqlCommand cmd = new SqlCommand(command2))
{
    using (SqlDataAdapter sda = new SqlDataAdapter())
    {
        cmd.Connection = con;
        sda.SelectCommand = cmd;
        using (DataTable dt = new DataTable())
        {
           sda.Fill(dt);
           GridView2.DataSource = dt;
           GridView2.DataBind();
                            
        }
    }
}

【问题讨论】:

  • 我也在 FROM 行之后尝试了 ON 子句。

标签: asp.net sql-server database


【解决方案1】:

你甚至没有提供错误,但是我可以立即看到你的日期没有被引用,它应该是

WHERE t.CreateDate > '11/21/2006'

我建议始终使用 ISO 日期,例如“20061121”

如果你真的构建了你的字符串,你将把它发送到 SQLServer

SELECT b.Name, b.Link, SUM(t.ImpressionCount) as ImpressionCount, SUM(t.ClickCount) as ClickCount FROM Banner as b JOIN BannerTracking as **tIN** b.BannerId = **t.BannerIdWHERE** t.CreateDate > 11/21/2006

已添加 -

确保在每个部分的末尾添加空格以确保正确解析。

【讨论】:

  • 添加了 IDE 抛出的错误。它没有提供很多见解。我会试试你的解决方案。
  • 在你的第一个语句中也注意到你有 IN 而不是 ON
  • System.Data.SqlClient.SqlException: 'Incorrect syntax near '.'.' 和以前一样的错误
  • 试了 ON 和 IN。不幸的是没有改变错误输出
  • 那么是时候排除查询本身或您如何调用它了,您可以在 SSMS 中运行该语句吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多