小编Doo*_*koo的帖子

获取所提供日期之间的所有日期

我有这个表和样本数据.我希望得到整个月或特定日期的出勤率和信息,例如他工作的时间或他不在的日子.

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)

sql sql-server

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

如何在SQL Server中根据条件动态分配所有月份到一列?

我有在我存储的表Product Name,它是Renewal Date与支付计划一起(Monthly/Quarterly/Yearly)。现在,如果产品的付款方案是Yearly or Monthly,它将显示获取续订的月份,并显示该Rate/Amount月份的月结单;但是如果付款方案是产品Monthly,则应Rate/Amount在每个月的前面显示,如下所示。

例如,如果一个名为产品ABC具有的付款计划Yearly,认购率276Renewal Date 2019-12-01并没有其他产品XYZ与付费计划Monthly的申购费率17Renewal 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)

sql-server

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

在SQL Server中对SUM函数应用OR条件

我有两列名为DebitCredit.我想从一列中获取值并放入第三列,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)

sql t-sql sql-server

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

如何将varchar转换为数字以在WHERE子句中使用

我有此表,用于存储员工信息。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)

sql-server

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

将列分为2

我有一张桌子,我正在存储津贴和扣减.如果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.

sql sql-server

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

如何从给定日期获取月份名称和年份?

如何从给定日期获取月份和年份的名称?

此查询获取月份的名称,但我希望输出是这样的

February, 2018

SELECT DATENAME(month, GETDATE()) AS 'Month Name'
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

sql-server

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

标签 统计

sql-server ×6

sql ×3

t-sql ×1