我有这个表和样本数据.我希望得到整个月或特定日期的出勤率和信息,例如他工作的时间或他不在的日子.
CREATE TABLE Attendance
(
[EmpCode] int,
[TimeIn] datetime,
[TimeOut] datetime
)
INSERT INTO Attendance VALUES (12, '2018-08-01 09:00:00', '2018-08-01 17:36:00');
INSERT INTO Attendance VALUES (12, '2018-08-02 09:00:00', '2018-08-02 18:10:00');
INSERT INTO Attendance VALUES (12, '2018-08-03 09:25:00', '2018-08-03 16:56:00');
INSERT INTO Attendance VALUES (12, '2018-08-04 09:13:00', '2018-08-05 18:09:00');
INSERT INTO Attendance VALUES (12, '2018-08-06 09:00:00', '2018-08-07 18:15:00');
INSERT INTO Attendance VALUES (12, '2018-08-07 09:27:00', '2018-08-08 17:36:00');
INSERT INTO Attendance VALUES (12, '2018-08-08 09:35:00', '2018-08-09 17:21:00');
INSERT INTO Attendance VALUES (12, …Run Code Online (Sandbox Code Playgroud) 我有在我存储的表Product Name,它是Renewal Date与支付计划一起(Monthly/Quarterly/Yearly)。现在,如果产品的付款方案是Yearly or Monthly,它将显示获取续订的月份,并显示该Rate/Amount月份的月结单;但是如果付款方案是产品Monthly,则应Rate/Amount在每个月的前面显示,如下所示。
例如,如果一个名为产品ABC具有的付款计划Yearly,认购率276和Renewal Date 2019-12-01并没有其他产品XYZ与付费计划Monthly的申购费率17和Renewal Date 2019-08-15然后将结果集我想应该是这样的
ProductName RenewalMonth Rate
------------------------------------
ABC December 276
XYZ January 17
XYZ February 17
XYZ March 17
XYZ April 17
XYZ May 17
XYZ June 17
XYZ July 17
XYZ August 17
XYZ September 17
XYZ October 17
XYZ November 17 …Run Code Online (Sandbox Code Playgroud) 我有两列名为Debit和Credit.我想从一列中获取值并放入第三列,Balance.我想应用一个条件,如果Debit包含任何值,它应该放在Balance列中,如果Credit有东西,那么它应该在列中插入该值,但如果两者都有一些值,那么只有一个应该去那里,Debit或者Credit.
Debit Credit Balance
------------------------------
1000 NULL 1000
2200 NULL 2200
NULL 3000 3000
1500 1500 1500
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT
Debit, Credit, SUM(Credit|Debit) AS Balance
FROM Table
Run Code Online (Sandbox Code Playgroud) 我有此表,用于存储员工信息。Id的数据类型为bigint。现在在代码中,当开发人员向我发送ID以提取数据时,他以字符串格式向我发送邮件,因为显然他无法将其传递453, 454给整数字段。无论如何,有没有将其转换成bigint,所以我可以使用它到IN运算符。
DECLARE @string varchar(25) = '453, 454'
SELECT FirstName+' '+LastName Employee FROM Employee WHERE ID IN (CAST(@string AS BIGINT))
Run Code Online (Sandbox Code Playgroud)
当我运行此查询时,出现以下错误。希望有人可以帮忙。
Msg 8114, Level 16, State 5, Line 2
Error converting data type varchar to bigint.
Run Code Online (Sandbox Code Playgroud) 我有一张桌子,我正在存储津贴和扣减.如果BaseCode为1,那么它是一个余量,如果BaseCode是2,那么它是扣除.我试图将列转换为2列.
津贴扣除某事
SELECT (
SELECT INN.FullName AS Benefit
FROM [AppCNF].[tbl_AllowanceOrBenefitType] INN
WHERE INN.BASECODE = 1
AND INN.ID = OUTR.ID
)
, FullName AS Deductions
FROM [AppCNF].[tbl_AllowanceOrBenefitType] OUTR
WHERE BASECODE = 2
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的,但它给予Allowances NULL.
如何从给定日期获取月份和年份的名称?
此查询获取月份的名称,但我希望输出是这样的
February, 2018
SELECT DATENAME(month, GETDATE()) AS 'Month Name'
Run Code Online (Sandbox Code Playgroud)
有什么建议 ?