小编D-S*_*hih的帖子

使用SQL联接显示正确的结果

首先,我是SQL(T-SQL)的新手,我很感激这方面的指导.我有3个表格,其值如下所示.

CREATE Table StudentProject
(ID int identity (1,1) PRIMARY KEY,
ProjectName Varchar (30),
DueDate Date)


CREATE Table StudentName 
(ID int identity (1,1) PRIMARY KEY,
StudentName Varchar (30))

CREATE Table StudentWork
(ID int identity (1,1) PRIMARY KEY,
ProjectID int,
StudentID int)

Insert Into StudentProject values 
('Omega','1/2/2005'),('KingOmega','1/3/2000'),('Beast','1/6/2007'), 
('DeltaMovie','3/7/2008')

Insert into StudentName values
('Roger'),('John'),('James'),('Juliet'),('William')

Insert into StudentWork values
(1,1),(1,2),(2,2),(2,3),(3,3),(3,4),(1,3)
Run Code Online (Sandbox Code Playgroud)

目标是产生以下结果但似乎我不能或我确定我做错了什么.

SQL_Outcom

SQL_Outcome

请帮忙.

sql sql-server

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

如何获取 PostgreSQL 中两个日期之间的季度数?

我有 MS SQL 函数DATEDIFF

SELECT DATEDIFF(QQ, 0, '2018-09-05')
Run Code Online (Sandbox Code Playgroud)

返回 474(整数)。

PostgreSQL 相当于这个函数的是什么?

sql postgresql date-arithmetic

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

从 json 字段 mysql 中的键值对列表中提取一个键

我有以下格式的数据:

"article_body" : [
        {
            "article_desc" : "THURSDAY, Sept. 1, 2016 (HealthDay News) -- Dapagliflozin improves insulin sensitivity and increases lipid oxidation and plasma ketone concentration in patients with type 2 diabetes mellitus (T2DM), according to a study published online Aug. 25 in Diabetes Care. \n\n Giuseppe Daniele",
            "links" : [{
                    "link_name" : "Full Text (subscription or payment may be required)"}
            ]}
    ],
Run Code Online (Sandbox Code Playgroud)

我想提取密钥

article_desc
Run Code Online (Sandbox Code Playgroud)

article_body.

我在 Mysql 中的代码片段:

SELECT 

    JSON_EXTRACT(full_article_json, '$.article_body."article_desc"') AS description,
FROM
    wc_article_full_data;
Run Code Online (Sandbox Code Playgroud)

我得到空数据,如何解析这些数据?

mysql sql json

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

mysql分组查询与列过滤器

我有一个mysql表,其中包含下面提到的列C1,C2和C3的数据。表数据在下文中提及(由于保密,因此为假数据)。我想要一个mysql查询,它将以c1降序返回所有C1列顺序的计数(首先获得最大计数C1),该查询具有最大计数desc和C1的C2数据具有重复的最大时间,并且与C3相同。

    C1  C2  C3
    X   A   U
    X   A   U
    X   B   V
    Y   H   K
    Y   H   K
    Y   H   K
    Z   F   R
    Z   F   P
    Z   G   P
    Z   F   R
Run Code Online (Sandbox Code Playgroud)

输出应采用以下格式。

  Count  C1   C2  C3
  4      Z    F   P
  3      Y    H   K
  3      X    A   U
Run Code Online (Sandbox Code Playgroud)

我能够获得计数,但不能获得同一查询中C2,C3的最大重复值。

mysql sql

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

为什么不实例化对象会自动实例化其属性?

我有以下课程:

public class CustomerResult
{
    public string CompanyStatus { get; set; }
    public OverallResult Result { get; set; }
}

public class OverallResult
{
    public string StatusDescription { get; set; }
    public int StatusCode { get; set; }
    public string CustomerId { get; set; }        
}
Run Code Online (Sandbox Code Playgroud)

我实例化:

var apiResult = new CustomerResult();
Run Code Online (Sandbox Code Playgroud)

为什么以下返回空引用?OverallResult当我创建时肯定会被实例化CustomerResult()

apiResult.Result.CustomerId = "12345";
Run Code Online (Sandbox Code Playgroud)

.net c# instance

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

将 PostgreSQL 中的连续行分组

鉴于此表:

| i | x |
+---+---+
| 1 | A |
| 2 | A |
| 3 | B |
| 4 | B |
| 5 | B |
| 6 | B |
| 7 | A |
| 8 | A |
| 9 | A |
Run Code Online (Sandbox Code Playgroud)

如何对共享相同字母(在 x 列中)的行进行分组以获得以下输出?

| x | c |
+---+---+
| A | 2 |
| B | 4 |
| A | 3 |
Run Code Online (Sandbox Code Playgroud)

此外,我想输出已分组的行数(如 c 列所示)。

我尝试了以下 …

sql postgresql group-by gaps-and-islands

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

在 MySQL 中选择 COUNT of MAX

我有两个表:Score tableTeams table。它们都包含其他表中的一些外键,但就我而言,我不需要其他表中的列。

我想得到team id and points一个SELECT query. 这些点是从 a 中得出的COUNT of MAX score of a team per round

Score table

ID 回合编号 团队 ID 分数
1085e36b-7621-4634-93e2-c5404108ed23 424d4186-4432-4b8d-ab9d-00ee71945cf6 752f9ebc-7016-42f2-be90-768711fc3d46 18
47ff3765-6357-47bc-abb8-6b5adf436546 424d4186-4432-4b8d-ab9d-00ee71945cf6 90dd8de4-8ddc-46cd-8b67-d93edbede174 7
b26b1a5b-8606-4c08-b838-30fdbcf98697 3fbb49a0-7a8a-4db5-b854-84a9ce7ac2b3 90dd8de4-8ddc-46cd-8b67-d93edbede174 20
c1add78a-94a3-48cf-b89d-4e4500ab738d 3fbb49a0-7a8a-4db5-b854-84a9ce7ac2b3 752f9ebc-7016-42f2-be90-768711fc3d46 21

Teams table

ID 姓名 比赛ID
2b56a499-9fc4-40c2-a7c4-43762c2b27e7 2@1.com 和 4@1.com 9aaa6f86-5555-49b8-99a6-900a90dc3c7c
752f9ebc-7016-42f2-be90-768711fc3d46 5@1.com 和 3@1.com 9aaa6f86-5555-49b8-99a6-900a90dc3c7c
7c9aa32a-ff99-4169-9512-27bc0aac0093 7@1.com 和 6@1.com 9aaa6f86-5555-49b8-99a6-900a90dc3c7c
90dd8de4-8ddc-46cd-8b67-d93edbede174 8@1.com 和 1@1.com 9aaa6f86-5555-49b8-99a6-900a90dc3c7c

正如您所看到的 …

mysql sql subquery aggregate-functions

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

对单表使用 Merge 语句

是否可以对单表使用merge语句?我想在插入之前检查是否已存在相同的值集,则应更新该记录,如果不存在,则应插入该记录。我在互联网上搜索过,但我得到了带有 2 个表的合并语句的示例。我在一张桌子上尝试过,但无法获得积极的结果。我试图检查的值将是动态的。我想在我的应用程序中使用这个查询。

我正在尝试检查(在下面的情况下仅“主要”列)如果两列匹配,则应更新该记录,如果不匹配,则应插入该记录。

我创建了一个示例表学生。下面是查询。

create table student (sid int,name varchar(20),major varchar(10),gpa float,tutorid int, PRIMARY KEY (sid))

insert into student values(101,'Bill','CIS',3.45,102)

insert into student values(102,'Mary','CIS',3.1,null)

insert into student values(103,'Sue','Marketing',2.95,102)

insert into student values(104,'Tom','Finanace',3.5,106)

insert into student values(105,'Alex','CIS',2.75,106)

insert into student values(106,'Sam','Marketing',3.25,103)

insert into student values(107,'Joan','Finance',2.9,102)
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的查询

merge into student a 
using (select name,major from student) b 
on (a.major=b.major)
when matched then
update set a.name='Rahul'
when not matched then
insert(a.SID,a.major) values(123, 'Temp') 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

ORA-30926: 无法在源表中获取稳定的行集

也许我做的事情完全错误。谁能帮帮我吗。

sql oracle

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

MySQL Select Query 生成动态列结果

我需要编写一个动态返回列的查询。例如,我有一个包含列的表 tblTest:

Id, Name,   Type,  Amount
1, Receipt, Cash   100
2, Receipt, Card   200
3, Receipt, Cheque 250
4, Receipt, Card   150
5, Receipt, Cash   100
6, Payment, Cash   300
7, Payment, Cheque 400
Run Code Online (Sandbox Code Playgroud)

SQL查询:

SELECT
    Name,
    SUM(CASE WHEN Type = 'Cash'   THEN Amount ELSE 0 END) Cash,
    SUM(CASE WHEN Type = 'Card'   THEN Amount ELSE 0 END) Card,
    SUM(CASE WHEN Type = 'Cheque' THEN Amount ELSE 0 END) Cheque
FROM tblTest
GROUP BY
    Name;
Run Code Online (Sandbox Code Playgroud)

它返回我,

在此输入图像描述

上面的结果是按照我的要求,但在我的情况下,上面数据中的类型现金、卡、支票等不是预定义的,它们可能是动态出现的,那么我如何管理它,请帮助我为此构建动态列 SQL。

提前致谢..

mysql sql pivot-table aggregate-functions case-when

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

C#DateTime.TryParse让我感到困惑

DateTime.TryParse在我的程序中使用方法判断字符串值是否为DateTime,然后我注意到这一点:

DateTime.TryParse("9.08", out DateTime dt)
// true
DateTime.TryParse("2.52", out DateTime dt)
// false
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

c# datetime datetime-format

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