小编Md.*_*bir的帖子

Sql查询只显示基于两列的重复记录

我有一个名为employee的表,这个表中有很多记录.以下是一些示例数据:

fullname  | address  |  city
-----------------------------
AA          address1    City1
AA          address3    City1
AA          address8    City2
BB          address5    City2
BB          address2    City1
CC          address6    City1
CC          address7    City2
DD          address4    City1
Run Code Online (Sandbox Code Playgroud)

我想SELECT在sql server中有一个查询,它将只显示基于列fullname和的重复记录city.对于给定的数据并考虑条件,只有前两个记录是重复的.所以我的预期输出应该如下:

fullname  | address  |  city
-----------------------------
AA          address1    City1
AA          address3    City1
Run Code Online (Sandbox Code Playgroud)

为了得到这个输出,我写了这个查询:

select fullname, city from employee group by fullname, city having count(*)>1
Run Code Online (Sandbox Code Playgroud)

如您所见,它仅选择两列,因此它提供以下输出:

fullname  | city
------------------
AA          City1
Run Code Online (Sandbox Code Playgroud)

如果我重写如下的查询:

select fullname, city, address from employee group …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

如何查找数据库中的最后修改

我有一个应用程序,它将所有数据存储在 SQL Server 2008 中。该应用程序创建、修改、更新表。数据库的名称是XLPR_2001,它包含近500个表。

我想找出我通过应用程序进行的更改是否会影响整个数据库(XLPR_2001)。如果我找到它,那么我可以直接在数据库中直接进行这些更改,我可以非常快地完成工作。

我在网上搜索它,但对我的情况没有帮助。

sql t-sql database sql-server-2008

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

如果条件满足如何退出存储过程

当 if 条件满足时,我必须在中间停止我的存储过程。我使用了 NOEXEC ON 它显示了上述所有结果,直到 NOEXEC ON 语句。但我只需要 if 语句结果而不需要上述结果是可能的。

DECLARE @var1  VARCHAR(MAX),
 @var2  VARCHAR(MAX),
 @var3  VARCHAR(MAX)

 SET @var1 = 'ASH'
 SET @var3 = 'ASHff'
 print @var3

IF @var1 <> ''
    BEGIN
    PRINT 'Information available'
    SET NOEXEC ON
    END 

    SET @var2 = 'DFGF'

    SET NOEXEC OFF 
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到了这个结果:

ASHff
Information available
Run Code Online (Sandbox Code Playgroud)

但预期输出是:

Information available
Run Code Online (Sandbox Code Playgroud)

是否可以?

sql t-sql sql-server-2012

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

DataGridView仅数字单元格?

我是winforms的新手.我正在尝试将DataGridView的两列设置为仅限数字.我不希望用户能够在单元格中键入任何内容,除非它在一列中为自然数,而在另一列中为数值(总是一个小数).我认为这很简单..但即使从stackoverflow和其他网站尝试了很多东西后我仍然无法实现这一点.

If DataGridView1.CurrentCell.ColumnIndex = 8 Then

    If Not Char.IsControl(e.KeyChar) AndAlso Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "."c Then
        e.Handled = True
    End If

End If 
Run Code Online (Sandbox Code Playgroud)

.net vb.net datagridview winforms

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

如何使用纯JavaScript连接到MSSQL

我在多台服务器上有一些例行任务(在MSSQL中更改某些列类型)。因此,我正在尝试制作一个脚本程序以连接到MSSQL并更改某些表的结构。

到目前为止,我已经完成了...我在桌面上制作了一个文本文件,并将下面的代码写在了文件中

<!DOCTYPE html>
<html>
<head>
    <script>
        var objConnection = new ActiveXObject("adodb.connection");
        var strConn = "driver={sql server};server=192.168.139.121;database=mytest;uid=testuser;password=testpw";
        objConnection.Open(strConn);
        var rs = new ActiveXObject("ADODB.Recordset");

        (queries for changing table structure)..
    </script>
</head>
<body>
</body>
Run Code Online (Sandbox Code Playgroud)

之后,我将其另存为HTML文件并使用Internet Explorer执行。但是,没有响应。.我发现在执行'objConnection.Open(strConn);'之后 IE会永远等待响应。.是否要安装任何库或程序来执行以上所有代码?请给我一些提示

html javascript sql sql-server activex

3
推荐指数
1
解决办法
1529
查看次数

包含MsSQL中每个项目的列表名称

TableA
Name Items
  A  1
  A  2
  A  2
  A  3
  A  3
  B  1
  B  1
  B  2
  B  2
  C  1
  C  2
  C  2
  C  3

TableB
Items ItemsName
   1  One
   2  Two
   3  Three
Run Code Online (Sandbox Code Playgroud)

我想列出

Name
A
C
Run Code Online (Sandbox Code Playgroud)

因为A和C拥有TableB中的所有项目.B没有3.我想我应该使用"NOT EXISTS".

sql t-sql sql-server relational-division

3
推荐指数
1
解决办法
65
查看次数

在 HAVING 子句中重用计算列

请看下面的查询

SELECT 
    product_id, SUM(unit_price * quantity) Total
FROM 
    tblOrders
GROUP BY 
    product_id
HAVING
    SUM(unit_price * quantity) > 1000
Run Code Online (Sandbox Code Playgroud)

上面的查询工作正常。但是您可以在其中看到查询中,Total是一个计算列,并且在子句中再次使用相同的计算HAVING

如何避免在HAVING子句中使用相同的计算?

sql t-sql sql-server

3
推荐指数
1
解决办法
5503
查看次数

如何处理Sql server CREATE TABLE的数据库名称中的空格?

我有以下代码,我在vb.net项目中使用它.如果数据库名称中没有空格,这很有效.例如,如果数据库名称是"SampleCompany",它可以正常工作,但如果数据库名称更改为"Sample Company",我们在sql命令的这一部分中发现错误:"BEGIN CREATE TABLE"&cn.Database.我们必须能够处理带/不带空格的数据库名称.

有什么建议可以解决这个问题吗?谢谢.

cn.Database="Sample Company"

sqlCreate = "IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE      TABLE_NAME = 'Cloud_UserSetting' AND TABLE_CATALOG ='" & cn.Database & "') " & _
            "BEGIN CREATE TABLE " & cn.Database & ".dbo.Cloud_UserSetting(CloudId int NOT NULL, Name varchar(100) NOT NULL," & _
            "Setting varchar(250) NULL " & _
            "CONSTRAINT PK_Cloud_UserSetting PRIMARY KEY CLUSTERED(CloudId,Name)) END"
command = New SqlCommand(sqlCreate, cn)
command.ExecuteNonQuery()
Run Code Online (Sandbox Code Playgroud)

.net sql database vb.net sql-server

2
推荐指数
1
解决办法
6626
查看次数

在存储过程参数中处理NULL

我正在编写一个接受名为的参数的存储过程@Vendor.我希望查询以这种方式工作,具体取决于@Vendor.

  1. IF @Vendor IS NOT NULL - >过滤 Vendorname = @Vendor

  2. IF @Vendor IS NULL- >不要VendornameWHERE子句中应用filter

我想到的策略是应用IF分支来执行同一查询的两个版本,一个带有Vendorname WHERE子句过滤器,另一个没有.

IF (@Vendor IS NOT NULL) {
    select *
    from table
    where Vendorname = @Vendor;
} ELSE {
    select *
    from table;
}
Run Code Online (Sandbox Code Playgroud)

该语法可能稍微不正确,但我相信一般方法应该有效.

但是,我的问题是,是否有更简洁的方法来执行此操作,而不是再次复制相同的SQL语句?

sql t-sql sql-server

2
推荐指数
1
解决办法
96
查看次数

如何获得不同的值并计算其不可重复的值?SQL

我有一张桌子SoldCars.

Id_Car                               Id_Color                         time
8                                      2                          2015-02-11
8                                      4                          2015-03-11
8                                      2                          2015-04-11
5                                      2                          2015-05-11
8                                      3                          2015-08-11
Run Code Online (Sandbox Code Playgroud)

我想查询以获取以下行集:

Id_car          CountColors
8                   3
5                   1
Run Code Online (Sandbox Code Playgroud)

哪里Id_car是独特的,Id_Car并且CountColors是不同数量的颜色的数量.

我尝试了很多SQL查询,但结果远非如此.

例如:

Select dictinct Id_Car, count(Id_Color) as CountColors from SoldCars group by Id_car
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

如何仅加入 SQL Server 2008 中的最新记录?

我有两个表 A 和 B。表 A 可以为每个用户有多条记录。对于表 A 中的每一行,表 B 可以有多个记录。

下面是一个例子:

    Table A                 Table B
   a_id   a_key        b_id   b_key  b_AtblID
1. 6678   5778      1. 6509    5778    6678
2. 6679   5778      2. 6508    5778    6678
                    3. 6507    5778    6679
                    4. 6505    5778    6679
                    5. 6490    5778    6678
Run Code Online (Sandbox Code Playgroud)

您可以在 A 表中看到 2 条记录。一条记录在 B 表中有 3 条记录,一条记录在 B 表中有 2 条记录。

我希望我的查询从表 A 中提取记录,并从 B 表中提取最新记录。如果有意义的话,我不需要表 B 中与表 A 中的记录匹配的每条记录。这是我所拥有的示例,但我的代码从表 B 中提取了所有记录:

SELECT *
FROM A
     LEFT OUTER JOIN B
        ON b_AtblID …
Run Code Online (Sandbox Code Playgroud)

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

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

读取浮点值并将其写入 NumericUpDown

在 C# 中,我有一个代表浮点值的NumericUpDown控件,例如 2.3。它可以从用户界面增加或减少 0.1。

但是,该值无法以编程方式写入或读取,因为它是 C# 中的 int。我需要能够读取和写入这个浮点(或双精度)值。

目前,编译器强制我将其转换为 int 并删除小数位。这显然是 C# 中的一个错误。

.net c# numericupdown

-2
推荐指数
2
解决办法
1万
查看次数