小编And*_*mar的帖子

.NET DataReader和SQL连接

string query = 
    "SELECT * FROM table1, table2 WHERE table1.Id = table2.fId";
...
using(IDataReader dataReader = 
    db.ExecuteReader(CommandType.Text, query))
..
string value = dataReader["table2.field"]; //dies
Run Code Online (Sandbox Code Playgroud)

我目前正在编写一些.NET代码,它涉及执行连接查询,然后使用DataReader访问返回的数据.我想知道是否可以使用某种前缀表示法访问返回行中的字段(参见上面的示例),而不必使用序号位置来访问行中的值(在两个表都包含重叠字段的情况下)名)?

.net sql sqldatareader

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

sql 2005 case语句 - 列名无效

有人能告诉我为什么会收到错误:消息207,级别16,状态1,过程ExtractPDP4FromPDP,行21无效的列名称'ContainsEX'.

执行以下存储过程时.

CREATE PROCEDURE ExtractPDP4FromPDP 
    -- Add the parameters for the stored procedure here
AS
BEGIN

-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT PDP.*, LEFT(PDPCode,7) AS PDP7, PDP.Obsolete, 
        PDP.InvestorPDP, PDP.OnlineReport, PDP.ClientSpecific, 
        ContainsEX = CASE 
    WHEN(CHARINDEX(Left(PDPCode,5),'EX')>0) THEN 'True'
    ELSE 'False'
END, PDP4 =
CASE 
    WHEN ContainsEX = 'True' THEN 'E' & SUBSTRING(pdpcode,5,3)
    ELSE SUBSTRING(pdpcode,6,3)
END
FROM PDP
WHERE (((PDP.Obsolete)='False') AND ((PDP.InvestorPDP)='True') AND …
Run Code Online (Sandbox Code Playgroud)

sql database sql-server-2005

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

在MySQL中使用JOINS

我有这个查询完美的工作:

SELECT *
FROM Customer
WHERE SacCode IN
(
    SELECT SacCode
    FROM SacCode
    WHERE ResellerCorporateID = 392
    ORDER BY SacCode
)
AND CustomerID IN
(
    SELECT CxID
    FROM CustAppointments
    WHERE AppRoomID IN
    (
        SELECT AppRoomID
        FROM ClinicRooms
        WHERE ClinID IN
        (
                SELECT ClinID
                FROM AppClinics
                WHERE ClinDate >='20090101'
                AND ClinDate <='20091119'
        )
    )
)
Run Code Online (Sandbox Code Playgroud)

但是,我需要看到ClinDate的值(在最后一个嵌套查询中),所以我被告知我需要使用JOINS重新编写查询.

我不知道怎么样,有人可以帮忙吗?

谢谢.

mysql sql join

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

在冬天将夏季日期转换为utc?

该函数mktime采用struct tmas参数.其中一个成员struct tmtm_isdst.您可以将此设置为1表示冬季,0表示夏令时,如果您不知道,则设置为-1.

但是,如果在冬天,你尝试转换2009-09-01 00:00,mktime虽然目前是冬天,但是没有看到,你转换的日期是夏季.结果就是一个小时的休息时间.对我来说(GMT + 1)2009-08-31 22:00它应该是23:00.

有没有办法确定某个特定日期是在夏季还是冬季?是否有可能在冬季将夏季日期转换为utc?

(我试图回答这个问题时遇到了这个问题)

c time utc dst

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

尝试使用1个查询初始化2个变量中的2个值,是否可以执行此操作.

SET @Password = (
    SELECT UserPassword,IsLocked 
    FROM [Authentication].[tblLogin] 
    WHERE UserName=@UserName)
Run Code Online (Sandbox Code Playgroud)

我试图获得两个值userpassword和islocked两个变量,以便在下一个查询中的同一个SP中使用.是否有可能或者我必须为此编写两个查询.在sql server中是否存在数组的概念

sql sql-server sql-server-2005

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

操作数类型冲突:datetime2与int(Between)不兼容

我试图在两个日期之间获取记录,但是当我运行SQL时,我收到以下错误:

操作数类型冲突:datetime2与int不兼容

SELECT M.Id, M.MTimeInt, M.Date, CAST(D.Name AS TEXT) as Name 
FROM C 
JOIN N ON C.N_Id=N.Id 
JOIN M ON M.N_Id=N.Id 
JOIN MDish ON MDish.M_Id=M.Id 
JOIN D ON D.Id=MDish.D_Id 
WHERE C.Id=110 AND M.Date BETWEEN 2012-05-28 AND 2012-06-08
Run Code Online (Sandbox Code Playgroud)

SQL看起来是正确的,但我似乎无法弄清楚它为什么抱怨,任何想法?

谢谢

php sql sql-server codeigniter

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

SQL语法错误“始终以身份身份生成”

我正在尝试将此文件上传到netbeans,但是我无法创建authors表并继续收到以下错误:

CREATE TABLE authors (
   authorID INT NOT NULL GENERATED ALWAYS AS IDENTITY,
   firstName varchar (20) NOT NULL,
   lastName varchar (30) NOT NULL,
   PRIMARY KEY (authorID)
);

INSERT INTO authors (firstName, lastName)
VALUES 
   ('Paul','Deitel'), 
   ('Harvey','Deitel'),
   ('Abbey','Deitel'), 
   ('Dan','Quirk'),
   ('Michael','Morgano');
Run Code Online (Sandbox Code Playgroud)

[警告,错误代码1,064,SQLState 42000]您的SQL语法错误;检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第2行的“ GENERATED ALWAYS AS IDENTITY,firstName varchar(20)NOT NULL,lastName va”附近使用

[异常,错误代码1,064,SQLState 42000]您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第2行第2行第1列的'GENERATED ALWAYS AS IDENTITY,firstName varchar(20)NOT NULL,lastName va'附近使用

[警告,错误代码1,146,SQLState 42S02]表'books.authors'不存在

我已经在网上搜索了几个小时,但还没有找到答案!我是SQL的新手,如果这是一个重复的问题,我深表歉意。我正在使用MYSQL版本5.7.18

mysql netbeans-8

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

Sql Server查询语法

我需要执行这样的查询:

SELECT *, 
    (SELECT Table1.Column 
     FROM Table1 
     INNER JOIN Table2 ON Table1.Table2Id = Table2.Id 
    ) as tmp 
FROM Table2 WHERE tmp = 1
Run Code Online (Sandbox Code Playgroud)

我知道我可以采取一种解决方法,但我想知道这种语法是否可行,因为它(我认为)在Mysql中.

mysql sql sql-server-2005

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

sql - 找到最大值

我有一个包含3列的表:代码,年份,百分比.

我需要在2009年返回具有最低(最小)百分比的代码.在此之后,我还需要代码的名称,在我创建的其他表中存在.

我只想使用CREATE VIEW,但我不想这样做.

sql sql-server greatest-n-per-group

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

如何在MSACCESS中对不同的表列进行求和和减法

我有三个名为:Student,StudentPayment和CreditAmount的表.我想展示一个学生欠学校多少钱的结果.在学生表中有一个名为TotalPayable的列,它是要支付给学校的总金额,在StudentPayment中有一个名为TotalPaid的列,它是每次付款时的总付款,在CreditAmount表中有一个名为CreditAmount的列.是学校给予学生的豁免金额.所以我提出了一个问题:

SELECT Student.TotalPayableAmount - 
       Sum(StudentPayment.TotalPaid, CreditAmount.WaiverAmount) AS Total_Due
  FROM (Student INNER JOIN StudentPayment ON Student.ID = StudentPayment.ID) 
 INNER JOIN CreditAmount ON (Student.ID = CreditAmount.ID) AND (Student.ID = CreditAmount.StudentID)
 GROUP BY Student.ID, Student.TotalPayableAmount, CreditAmount.WaiverAmount 
Run Code Online (Sandbox Code Playgroud)

但它显示错误.

实际上我想制作TotalPaid和CreditAmount的SUM,然后想要从student表中的TotalPayable中减去它.请有人帮我这个.提前致谢.

sql database ms-access

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