标签: t-sql

如何将此T-SQL查询转换为使用显式连接语法?

我有以下Select语句,但想要将其更改为使用iner连接,因为我相信它们更有效,但不太确定从哪里开始.

DECLARE @myNameID  int
DECLARE @myAddressID  int
DECLARE @myFirstName nvarchar(256)

SET @myNameID = 1
SET @myAddressID =1
SET @myFirstName='Nathan'

SELECT @myNameID = myNameID 
    FROM

        NameTable Name,
        AddressTable Address,
        CountryTable Country

    WHERE
        Name.[FirstName] = @ myFirstName and 
        Address. AddressID = @ myAddressID and
        Address.CountryID = Country.CountryID  and
        Name.SecondID = Country.SecondID 
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005

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

SQL IsNumeric(),它不应该返回一点?

我只是想知道为什么SQL IsNumeric()返回int而不是bit?好像它应该返回一点.

sql t-sql sql-server

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

如何在sql中计算count?

我有下表:

memberid  
2
2
3
4
3
Run Code Online (Sandbox Code Playgroud)

......我希望得到以下结果:

memberid    count
2           2
3           1    ---Edit by gbn: do you mean 2?
4           1
Run Code Online (Sandbox Code Playgroud)

我试图使用:

  SELECT MemberID, 
         COUNT(MemberID) 
    FROM YourTable 
GROUP BY MemberID
Run Code Online (Sandbox Code Playgroud)

...但现在我想找到哪个记录有最大数量.IE:

memberid   count
2          2
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server aggregate sql-server-2005

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

SQL CORRELATION

我有这个问题:

SELECT COUNT (DISTINCT CUSTOMER_ACCOUNT.ID) AS  NUMBER_OF_ACCOUNTS 
FROM CUSTOMER_ACCOUNT 
INNER JOIN ACCOUNT ON CUSTOMER_ACCOUNT.ACCOUNT_ID=ACCOUNT.ID 
INNER JOIN CUSTOMER_ACCOUNT ON LOAD_ACCOUNT_DETAIL_0.ID = CUSTOMER_ACCOUNT.ID
WHERE Convert(datetime, convert(char(10), [CUSTOMER_ACCOUNT].CREATED_ON, 101)) BETWEEN '2009-01-01' AND '2009-05-1'
  AND CUSTOMER_ACCOUNT.DELETED!='1' 
  AND ACCOUNT.DELETED !='1'and  LOAD_ACCOUNT_DETAIL_0.ACCOUNT_STATUS='1'
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息1013,级别16,状态1,行1 FROM子句中的对象"CUSTOMER_ACCOUNT"和"CUSTOMER_ACCOUNT"具有相同的公开名称.使用相关名称来区分它们.

不确定如何解决 - 任何想法?

sql t-sql sql-server

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

将日志表拆分为当前和存档?

我有一个表来记录站点访问,它有超过100,000条记录.似乎没有任何性能问题,但是大型日志类型表是否应定期将记录移动到存档表并清除当前表?

sql t-sql sql-server

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

以下陈述有什么问题?

当我这样做:

select col1,case when [pivot1]=1 then '-' else '' end [pivot1],
case when [pivot2]=1 then '-' else '' end [pivot2]
from
(select col1,col2,col3 from tbl) as c
pivot
(sum(col3) for col2 in
([pivot1],[pivot2]))as pvt
Run Code Online (Sandbox Code Playgroud)

一切正常.

当我这样做:

select col1,[pivot1],[pivot2]
from
(select col1,col2,col3 from tbl) as c
pivot
(sum(case col3 when '-' then 1 else 0 end) for col2 in
([pivot1],[pivot2]))as pvt
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"Msg 156, Level 15, State 1, Line 31
Incorrect syntax near the keyword 'case'."
Run Code Online (Sandbox Code Playgroud)

我的目的是为这个转换编写一个case语句而不是多个case语句.

我究竟做错了什么?

t-sql sql-server sql-server-2005

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

T-SQL数据库关系PK FK同名?

脚本

我有3个数据库表.一个是图像,另外两个是人物和地方.由于每个人可以拥有许多图像,并且每个地方都可以拥有许多图像,因此我希望人与图像以及地点和图像之间存在一对多的关系.

外键是否必须与主键名称相同?或者我可以在images表中调用一些通用的外键,例如"PKTableID".这样我只需要一个图像表.

非常感谢.

问候,

编辑:

想要只有一个图像表的原因是因为每个图像只引用一个其他表.除此之外,我在这里使用了两个表的示例,我将使用的实际数据库将有20个表,所以我想知道是否仍然可以使用单个图像表来实现20个一对多的关系?

t-sql sql-server database-relations

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

如何过滤列?

使用SQL Server 2005

我想过滤列值不等于数字的列

表格1

Status

010203
Absent
231415
Ramesh
Suresh

...,
Run Code Online (Sandbox Code Playgroud)

我想只从状态列中获取名称

尝试查询

Select Status from table1 where status <> 'absent' and status <> numecivalue
Run Code Online (Sandbox Code Playgroud)

如何提及状态<> numericvalue

预期产出

Table

Status

Ramesh
Suresh
...,
Run Code Online (Sandbox Code Playgroud)

需要查询帮助.

sql t-sql sql-server sql-server-2005

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

sql查询问题

我有一张桌子如下图所示

Q_ID  DeptID  EmployeeName   City
100   100       testest      abcd
100   101         tata        cdd
Run Code Online (Sandbox Code Playgroud)

有100K记录.我需要一个查询,它应该获取具有相同Q_ID但不同DEPTID的所有记录.

请帮忙.

谢谢

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

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

在SQL Server 2005中的Insert语句中使用SubQuery

我有一个carale项目.它完全适用于localhost.我有一个"AddCar.aspx"页面,可以插入带有汽车功能的汽车记录.通过复选框选择汽车功能.如果我没有选中任何复选框,则没有问题.但如果我选中其中一个功能复选框,我的页面会出现如下错误:

"在此上下文中不允许使用子查询.只允许使用标量表达式."

我的代码是这样的:

foreach (DataListItem item in Security1.Items) {
        CheckBox CheckBox1 = (CheckBox)item.FindControl("CheckBox1");

        if (CheckBox1.Checked) {
            HiddenField h = (HiddenField)item.FindControl("FeaID");
            string add = "Insert into Carfeature (RecID,FeatureID) values ((select Max(RecID) from record),@FeatureID)";
            cmd[k] = new SqlCommand();
            cmd[k].CommandType = CommandType.Text;
            cmd[k].Parameters.Add("@FeatureID", SqlDbType.Int).Value = h.Value;
            cmd[k].CommandText = add;
            k++;
        }
}
Run Code Online (Sandbox Code Playgroud)

有什么解决方案吗?

sql t-sql sql-server sql-server-2005

0
推荐指数
2
解决办法
4286
查看次数