小编imi*_*iki的帖子

现金和表支票的总和

我需要从销售员的2列订单表中获取现金和支票金额的总和。

我的桌子是这样的:

Salesman A  Cash    21151
Salesman B  Cash    34510
Salesman C  Cash    21252
Salesman D  Cash    13356
Salesman A  Cheque  13944
Salesman B  Cheque  87368
Salesman C  Cheque  20182
Salesman D  Cheque  23862
Run Code Online (Sandbox Code Playgroud)

SQL:

SELECT Ca.Cash,  Cr.Credit FROM 
    (SELECT Salesman, PayMode, SUM(Collection) AS Cash
        FROM Prospect_Detail WHERE(Purpose = 'Collections') AND (PayMode = 'Cash')
        GROUP BY Salesman, PayMode) AS Ca 
        CROSS JOIN
    (SELECT Salesman, PayMode, SUM(Collection) AS Credit
        FROM Prospect_Detail WHERE(Purpose = 'Collections') AND (PayMode = 'cheque')
        GROUP BY Salesman, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

NULLIF 返回现有值的第一个字符而不是整个值

据我了解,在下面的查询中,如果第一个值NULLIF是空字符串,则应保留现有列的值。在我的实际查询中,这些是变量,但我在查询中放置了实际值以使其更短。

ISNULL(NULLIF(N'', N''), Pwd) => ISNULL(NULL, Pwd) => Pwd

相反,发生的情况是第一个字符被设置为值。运行下面的查询并留意 Pwd 的值。

DECLARE @tblHello TABLE (
    UserID INT NOT NULL IDENTITY(1,1),
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    CompanyName VARCHAR(80),
    Pwd VARCHAR(100) NOT NULL,  
    Email VARCHAR(100) NOT NULL,
    CreatedDate DATE NOT NULL DEFAULT SYSUTCDATETIME(),
    LastUpdated DATE NOT NULL DEFAULT SYSUTCDATETIME(), 
    isActive BIT NOT NULL DEFAULT(1)
)

INSERT INTO @tblHello (FirstName, LastName, CompanyName, Pwd, Email)
VALUES ('First', 'Last', 'Testing this', 'This is the password', 'test@email.com')

UPDATE @tblHello
SET
    Email = ISNULL(NULLIF(N'testuser58@email.com', ''), …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

如何在 Oracle 中使用字符串选择表?

首先,我知道这个问题很模糊,所以如果你能更好地描述它,请随时编辑它。有一些套表像TEST_201812TEST_201901等等。我有另一个存储这些值的表:

TEST_DATE:

ID   DATE
1    201810
2    201811
3    201812
4    201901
Run Code Online (Sandbox Code Playgroud)

现在我想要的是TEST_201812使用TEST_DATE. 我知道这是错误的,但像这样:

select * from TEST_(select DATE from TEST_DATE where ID = 1)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何实现这一目标?

sql oracle

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

"IS"在Oracle程序中做了什么?

我想在Oracle中创建一个过程; 但是,我在互联网上看到的任何样本都有一个"IS"语法,我无法找到它的任何功能.

CREATE [OR REPLACE] PROCEDURE procedure_name
    [ (parameter [,parameter]) ]

IS
    [declaration_section]

BEGIN
    executable_section

[EXCEPTION
    exception_section]

END [procedure_name];
Run Code Online (Sandbox Code Playgroud)

有谁知道"IS"做了什么?

oracle syntax stored-procedures

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

按组别显示分组中的前10行

select COMMUNITY_AREA_NAME, count(COMMUNITY_AREA_NAME) as Number_Of_Schools
from CHICAGO_PUBLIC_SCHOOLS group by COMMUNITY_AREA_NAME order by 2 desc 
Run Code Online (Sandbox Code Playgroud)

我编写了上面的sql查询来获取结果集,该结果集解释了拥有最多学校的社区名称,结果就是这样但是如何才能显示前10个列?我使用'限制10'.但它显示出一些错误.

在此输入图像描述

select Top 10 COMMUNITY_AREA_NAME, count(COMMUNITY_AREA_NAME) as Number_Of_Schools
from CHICAGO_PUBLIC_SCHOOLS group by COMMUNITY_AREA_NAME order by 2 desc 
Limit 10;
Run Code Online (Sandbox Code Playgroud)

错误:

Msg 102, Level 15, State 1, Line 3
Incorrect syntax near 'Limit'.
Run Code Online (Sandbox Code Playgroud)

sql sql-server group-by

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

标签 统计

sql ×4

sql-server ×3

oracle ×2

group-by ×1

stored-procedures ×1

syntax ×1