相关疑难解决方法(0)

SQL顺序的绝对值

我的下表中有一些数据

table_1
     column_1     column_2
        1           10
        1           20
        1           30
        1           40
        1           50
        2           -10
        2           -20
        2           -30
        2           -40
        2           -50
Run Code Online (Sandbox Code Playgroud)

我想将此结果更改为这样的结果

 column_1     column_2
    1           10
    2           -10
    1           20
    2           -20
    1           30
    2           -30
    1           40
    2           -40
    1           50
    2           -50
Run Code Online (Sandbox Code Playgroud)

我不确定是否有办法使用order by来做到这一点?我想要展示的是我试图将(10,-10)显示为一组数据

sql sql-server sql-server-2012

6
推荐指数
2
解决办法
2636
查看次数

连接分组的行

我想知道这张表是否有可能

ID   Price    ServiceID
1    50       11
1    -10      12
2    100      11
2    20       11
Run Code Online (Sandbox Code Playgroud)

按ID分组,总结价格并连接serviceID,如下所示:

ID   Price    ServiceID
1    40       11,12
2    120      11
Run Code Online (Sandbox Code Playgroud)

按ID分组并对价格求和是相当简单的,但是连接服务ID会让我感到不安.

感谢您的参与.

xml sql t-sql xpath xquery

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

合并多对多关系连接中的列值

我有两个表,BooksAuthors,它们之间通过名为book_authors的第三个表具有多对多关系,我试图使用内部联接列出每本书的作者的所有书籍,以便将它们显示在DataList控件,但是join 导致了几个重复的行,因为每本书可能有很多作者,所以每个作者都会有一行。
例子:

book_title           author  
b1                    a1  
b1                    a2  
Run Code Online (Sandbox Code Playgroud)

解决此问题的最佳方法是什么,使其变为:

book_title                author  
b1                        a1, a2  
Run Code Online (Sandbox Code Playgroud)

sql sql-server asp.net-3.5 sql-server-2008-express

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

如何在连接多个表时使用GROUP BY连接字符串?

我正在加入多个表,我希望根据以下内容将一个列值放入行中TechnicianName:

  • 我有4个表easy_tbljobcard,easy_tbltechnicianeasy_tblproblemeasy_tbltechnicianMaster

  • 我得到TechnicianName第2列从easy_tbltechnicianMaster 哪里technicianId存在easy_tbltechnician

  • 我想STUFF在我的查询中的第3列(p.ProblemReported)

当前的SQL语句:

 SELECT j.CardID, 
      , (SELECT TechnicianName FROM easy_tbltechnicianMaster WHERE TechnicianID = t.technicianID) AS TechnicianName
      , p.ProblemReported 
 FROM easy_tbljobcard AS j 
 JOIN easy_technician AS t ON t.CardID = j.CardID  
 LEFT JOIN easy_tblproblem AS p ON p.CardID = t.CardID
Run Code Online (Sandbox Code Playgroud)

查询结果:

???????????????????????????????????????????????????
?  CardID  ?  TechnicianName  ?  ProblemReported  ?
???????????????????????????????????????????????????
?    1     ?      AKBAR       ?     PROBLEM A     ?
? …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008 sql-server-group-concat

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

在早期版本上创建用户定义的函数,例如 SQL Server 2017 STRING_AGG

我尝试创建一个通用函数,可以像在 SQL Server 2017 上使用新的 string_agg 内置函数的示例一样使用

内部实现可以类似于以下内容

with tbl as(
   select a.Id, c.Desc
     from TableA a
     join TableB b on b.aId = a.Id
     join TableC c on c.Code = b.bCode 
)  
select distinct ID
     , STUFF(( select ', ' + Desc from tbl t where t.ID = tbl.ID 
            for xml path(''),TYPE).value('.','VARCHAR(MAX)'),1,2,'') Desc   
from tbl
Run Code Online (Sandbox Code Playgroud)

但是如何接收字段键、要连接的字段、分隔符和范围选择上下文呢?Inline与或Multi-Statement Table-Valued Functions相关吗?

sql-server user-defined-functions string-aggregation

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

SQL Server 2000中的Implode类型函数?

是否有SQL Server的Implode类型函数?

我所拥有的是一个列表(在SQL服务器表中):

 Apple
 Orange
 Pear
 Blueberry
Run Code Online (Sandbox Code Playgroud)

我想让他们出来

 Apple, Orange, Pear, Blueberry
Run Code Online (Sandbox Code Playgroud)

我希望空格和逗号可配置,但如果不是,我总是可以替换它...

快速帮助将不胜感激!

t-sql sql-server

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

SQL Server连接GROUP BY

我有一个看起来像这样的查询

SELECT J.JobID,T.Title FROM JobsTagMap J
Left Join Tags T
ON J.TagID=T.TagID
Run Code Online (Sandbox Code Playgroud)

返回以下数据集(简化,JobID实际上是UniqueIdentifier)

JobID    Title
1        Tag1
1        Tag2
2        Tag2
2        Tag5
2        Tag9
Run Code Online (Sandbox Code Playgroud)

现在,我想通过JobID列对其进行分组并连接Title,所以结果如下

JobID    Title
1        Tag1,Tag2
2        Tag2,Tag5,Tag9
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

sql sql-server

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

SQL Server 2008,连接字符串?

我已经浪费了整整两天的时间来试图解决这个问题,现在我想出了我的想法,我需要一个紧急的帮助,问题是,我有桌子

表:Sales,SalesIdprimary key

---------------------------------------------------
SalesId | SalesDate | Customer| Discount | Remarks
---------------------------------------------------
1       | 01/01/2012|   John  |   15     |   NULL
2       | 01/01/2012|   Peter |   25     |   NULL
3       | 01/01/2012| Micheal |   35     |   NULL
Run Code Online (Sandbox Code Playgroud)

表:SalesBody,的SerialNoprimary keySalesIdforeign key

---------------------------------------------------
SerialNo | SalesId | Product | Quantity | Rate
---------------------------------------------------
10       | 1       | Pencil   | 18       | 20
11       | 1       | pen      | 200      | 60
12 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server string concatenation

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

简化CTE字符串连接?

我有以下代码清单

Code Meaning 
1    Single 
2    Married/Separate 
3    Divorced 
4    Widowed 
8    Not Applicable 
99   Not known
Run Code Online (Sandbox Code Playgroud)

我试图使用CTE将这些展平为一行.我有一个CTE解决方案,它使用RowNumber函数来执行此操作.

WITH Flattened (JoinItem, CodeMeaning) AS
(
    SELECT 1 AS JoinItem, CAST('' AS VARCHAR(255))
    UNION ALL
    SELECT f.JoinItem+1, CAST(f.CodeMeaning + ',' + c.CodeMeaning AS VARCHAR(255))
    FROM
    (
        SELECT JoinItem = ROW_NUMBER() OVER (ORDER BY Code),c.Code + ' - ' + c.Meaning AS CodeMeaning
        FROM Codes c
    ) c
    INNER JOIN Flattened f
    ON f.JoinItem=c.JoinItem
)
SELECT TOP 1 JoinItem,  CodeMeaning 
FROM Flattened 
ORDER …
Run Code Online (Sandbox Code Playgroud)

sql common-table-expression sql-server-2008-r2

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

如何在 Microsoft SQL 中将一列中的字符串求和到一行中?分组依据不起作用,因为它是 MSSQL

例如我们有一个包含三列的表

Column A |  Column B | Column C
-------------------------------
P1       |    10     |    A    
P1       |    20     |    B
P1       |    30     |    C
P2       |    30     |    D
P2       |    40     |    E
Run Code Online (Sandbox Code Playgroud)

我如何在Microsoft SQL中编写 SELECT 查询才能得到这种结果

Column A |     Column B      |   Column C
------------------------------------------
P1       |    10, 20, 30     |    A, B, C
P2       |    30, 40         |    D, E
Run Code Online (Sandbox Code Playgroud)

sql database sql-server

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

SQL SERVER 2017中对应的GROUP_CONCAT()

我想将以下 MYSQL 查询转换为 MS SQL Server。但是,我确定GROUP_CONCAT2017 年之前的 MS SQL Server 中不存在该函数。SQL SERVER 2017 中有一个函数。有人可以帮助我吗?

SELECT region, GROUP_CONCAT(route_name) AS route_name 
FROM route_details 
LEFT JOIN ride_details ON route_id = r_id 
WHERE region != '' AND service_date = '2019-09-02' 
GROUP BY region
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server string string-aggregation

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

如何在MS SQL中将字段分为1行

我正在使用这个MS SQL脚本:

     select NumberId, ART_No, InkColor 
     from INK_STOCK
Run Code Online (Sandbox Code Playgroud)

我有这样的输出:

     NumberId         ART_No          InkColor
     ------------------------------------------
     0010             23003             BLUE
     0010             23003             RED
     0010             23003             GREEN
     0013             23004             ORANGE
     0013             23004             PINK
     0013             23004             WHITE
     0015             23007             GREEN
     0015             23007             PINK
Run Code Online (Sandbox Code Playgroud)

如何使输出应该是这样的:

     NumberId         ART_No          InkColor
     ------------------------------------------
     0010             23003             BLUE, RED, GREEN
     0013             23004             ORANGE, PINK, WHITE
     0015             23007             GREEN, PINK
Run Code Online (Sandbox Code Playgroud)

谢谢

sql t-sql sql-server sql-server-2005

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

连接一列SQL的行

我正在使用以下查询来提取约会数据:

SELECT app.subject, AL.locationName
FROM FilteredAppointment app
INNER JOIN appointmentlocation AL ON app.activityid = AL.appointment
WHERE app.scheduledstart='2013-07-06 15:00:00.000'
Run Code Online (Sandbox Code Playgroud)

输出如下,有2行(具有两个不同位置的相同约会):

在此输入图像描述

如何修改此查询以仅显示一行,其中两个位置与逗号连接,如下所示:

Column1:(MZN; OTV)*...
Column2:Room1,Room2

谢谢

sql sql-server-2008-r2

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