小编Rag*_*ull的帖子

"数据太长了" - 为什么?

我编写了一个MySQL脚本来为假设的医院记录创建数据库并用数据填充它.其中一个表Department有一个名为Description的列,它被声明为varchar(200)类型.当为描述执行INSERT命令时,我得到一个错误1406 : __CODE__. 我插入的所有字符串都少于150个字符.

这是宣言:
__CODE__


这是插入命令: 从外表看,这应该是有效的.有人有见识吗?
__CODE__

mysql sql

57
推荐指数
7
解决办法
18万
查看次数

SQL JOIN,GROUP BY在三个表上获取总计

我继承了以下数据库设计.表是:

customers
---------
customerid  
customernumber

invoices
--------
invoiceid  
amount

invoicepayments
---------------
invoicepaymentid  
invoiceid  
paymentid

payments
--------
paymentid  
customerid  
amount
Run Code Online (Sandbox Code Playgroud)

我的查询需要返回给定客户编号的invoiceid,发票金额(在发票表中)和应付金额(发票金额减去对发票的任何付款).客户可能有多张发票.

当对发票进行多次付款时,以下查询为我提供了重复记录:

SELECT i.invoiceid, i.amount, i.amount - p.amount AS amountdue
FROM invoices i
LEFT JOIN invoicepayments ip ON i.invoiceid = ip.invoiceid
LEFT JOIN payments p ON ip.paymentid = p.paymentid
LEFT JOIN customers c ON p.customerid = c.customerid
WHERE c.customernumber = '100'
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

sql join aggregate

12
推荐指数
2
解决办法
16万
查看次数

登录失败.登录来自不受信任的域,不能与Windows身份验证一起使用

我的网页在安全服务器(https)上,我正在尝试连接SQL Server 2008数据库,这是普通的服务器.我在页面本身上编写连接字符串,而不是在web.config文件中.我收到以下错误: -

System.Data.SqlClient.SqlException: Login failed.
The login is from an untrusted domain and cannot be used with Windows authentication.
Run Code Online (Sandbox Code Playgroud)

请帮助,如何连接它,我是否必须为它做一些web服务.

我的代码如下:

public void FillCity()
{
    SqlConnection con = new SqlConnection();
    con.ConnectionString = "integrated security=SSPI;data source=dev-fcb; user id=sa;password=password;" 
    +"persist security info=False;database=mediapro";
    con.Open();
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = new SqlCommand("select * from StateCityMaster where IsActive='1' order by CityName", con);
    DataSet ds = new DataSet();
    da.Fill(ds);
    string CityName = string.Empty;
    if (ds.Tables[0].Rows.Count > 0)
    {
        CityName = ds.Tables[0].Rows[0]["CityName"].ToString();
    } …
Run Code Online (Sandbox Code Playgroud)

sql https web-services sql-server-2008

11
推荐指数
2
解决办法
6万
查看次数

像整数运算符一样

我的表中有一个bigint(ProductSerial)类型的列.我需要使用like运算符通过Product serial过滤表.但我发现,像运算符一样不能用于整数类型.

有没有其他方法(我不想使用=运算符).

sql sql-like

11
推荐指数
1
解决办法
4万
查看次数

如何在SQL Server中使用SQL脚本添加一年的日期?

我从前端得到日期参数值为'4-1-2009'.现在我想成为

在我的存储过程中'4-1-2010'.我在尝试如下.

ALTER PROCEDURE [dbo].[SP_EMP]                    

 @STARTDATE DATETIME,

 @ENDDATE DATETIME,

 @STARTDATE2 DATETIME, 

 SET  @STARTDATE2=DATEADD(yy, 1, @STARTDATE)


AS                      
BEGIN 

SELECT EMPNAME FROM EMP WHERE JOINDATE>@STARTDATE2

----//  SOME JOINS //----

END
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?请告诉我.

此致,N.SRIRAM

sql-server-2005

9
推荐指数
2
解决办法
5万
查看次数

从三列中获取最新日期

ID     Date1           Date2            Date3   
158    5/3/13 15:11    2/20/13 11:38    2/20/13 11:38
Run Code Online (Sandbox Code Playgroud)

我想从这三列中获取最新日期.

sql t-sql sql-server sql-server-2008

5
推荐指数
1
解决办法
304
查看次数

BETWEEN使用负值和无符号整数

我有一个表与一个典型的unsigned int主键id

select * from log_data where id between -129 and -120
Run Code Online (Sandbox Code Playgroud)

看似试图返回表格中的每一行(或至少陷入'发送数据'几个小时)

id  select_type table      type     possible_keys   key     key_len   ref   rows    Extra
1   SIMPLE      log_data    ALL     PRIMARY         NULL    NULL      NULL  357114  Using where
Run Code Online (Sandbox Code Playgroud)

据上的文档BETWEENhttps://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between: 这等同于表达式(分钟<= EXPR AND EXPR <=最大值)如果所有参数都是相同的类型

然而,

select * from log_data where -129 <= id and id <= -120 
Run Code Online (Sandbox Code Playgroud)

表现得像我期望的那样.

id  select_type table   type    possible_keys   key     key_len  ref    rows    Extra
1   SIMPLE      NULL    NULL    NULL            NULL    NULL     NULL   NULL    Impossible …
Run Code Online (Sandbox Code Playgroud)

mysql

5
推荐指数
1
解决办法
59
查看次数

SQL连接.一对多关系

我有两张桌子如下

Table 1
-----------------------------------
UserID   | UserName | Age | Salary
-----------------------------------
1        | foo      | 22  | 33000       
-----------------------------------
Table 2
------------------------------------------------
UserID   | Age      | Salary     | CreatedDate
------------------------------------------------
1        | NULL     | 35000      | 2015-01-01
------------------------------------------------
1        |  28      | NULL       | 2015-02-01
------------------------------------------------
1        |  NULL    | 28000      | 2015-03-01
------------------------------------------------

我需要这样的结果.

Result
-----------------------------------
UserID   | UserName | Age | Salary
-----------------------------------
1        | foo      | 28  | 28000
-----------------------------------

这只是一个例子.在我的真实项目中,我在上表中有大约6列,如Age和Salary.

在表2中,每条记录只有一个值,即如果Age有值,则Salary将为NULL,反之亦然.

更新:

表2包含CreatedDate列.所以我想获得最新的"NOTNULL"CELL值而不是最大值.

sql sql-server

5
推荐指数
1
解决办法
86
查看次数

会话bean中的EntityManager异常处理

我有一个带有注入的EntityManager em的托管无状态会话bean.

我想要做的是拥有一个具有唯一列的数据库表.然后我运行一些试图插入实体的算法.如果实体存在,则会更新或跳过它.

我想要这样的东西:

try {   
em.persist(cd);     
em.flush();     
} catch (PersistenceException e) {  
// Check if the exception is DatabaseException and ConstraintViolation
    // Update instead or skip it
}
Run Code Online (Sandbox Code Playgroud)

问题是我只能抓到PersistenceException.DatabaseException没有被抓住.这是可悲的,因为只有DatabaseException已调用的方法getDatabaseErrorCode(),我想用它来检查重复的条目.我不理解它因为PersistenceException.getCause()回归DatabaseException.

所以我的问题是:如何捕获DatabaseException并检查MySQL错误代码?

感谢您对此的任何想法和经验.

java mysql jpa entitymanager

4
推荐指数
1
解决办法
8593
查看次数

SQL SELECT .... NOT IN查询

我创建了一个用于访问在线数据库的链接服务器,以便我可以从在线数据库中选择新记录,并根据客户ID将它们插入到本地数据库中.这是我选择新记录的查询:

SELECT * FROM [194.0.252.151].onlineDB.dbo.customers 
WHERE [194.0.252.151].onlineDB.dbo.customers.CustomerID 
NOT IN 
(SELECT CustomerID FROM LocalDB.dbo.customers)
Run Code Online (Sandbox Code Playgroud)

让我说,从onlineDB选择的操作工作得很好,但上面的代码不返回来自onlineDB的必需(新)记录.错误说:

The multi-part identifier "194.0.252.151.onlineDB.dbo.customers.CustomerID" could not be bound.
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我犯的错误.任何帮助,将不胜感激.

sql sql-server-2008 notin

4
推荐指数
1
解决办法
99
查看次数