小编Sta*_*vas的帖子

如果值为空,则合并行

我正在使用SQL-Server 2008.我需要组合相同的行并在以下情况下Name增加计数器:

  1. Id's同样Name是1或更多blank
  2. 如果Id是,则不合并行NULL!
  3. 如果具有相同Name但不同的行,则不合并行Ids

目前输出:

Name    Id   Cnt
John    1     1
Peter   2     2 -- This Peter with the same Id have 2 entries so Cnt = 2
Peter   3     1 -- This is other Peter with 1 entry so Cnt = 1
Lisa    4     1
Lisa   NULL   1
David   5     1
David         1 -- here Id is blank ''
Ralph         2 -- Ralph …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server merge group-by

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

JPQL构造函数表达式,如何在'select new'中急切地获取主实体

我的原始查询有点复杂,但我要做的是获取实体AlertCondition以及一些其他字段.

    + "  SELECT new org.rhq.core.domain.alert.composite.AlertConditionEventCategoryComposite " //
    + "       ( " //
    + "         ac, " //
    + "         res.id " //
    + "       ) " //
    + "    FROM AlertCondition AS ac FETCH ALL PROPERTIES " //
    + "    JOIN ac.alertDefinition ad " //
    + "    JOIN ad.resource res " //
    + "   WHERE " + AlertCondition.RECOVERY_CONDITIONAL_EXPRESSION //
    + "     AND ( res.agent.id = :agentId OR :agentId IS NULL ) " //
    + "     AND ad.enabled = TRUE …
Run Code Online (Sandbox Code Playgroud)

sql select hibernate jpa

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

PARTITION BY Name,Id用于比较和检测问题

交代

想象一下,这里有3家公司.我们正在加入表格Name,因为不是每个员工都提供了他的PersonalNo.StringId只有专家,所以也不能用于加盟.同一名员工可以在多家公司工作.


问题

问题是可能存在具有相同名称的不同员工(具有相同的名字和姓氏,在示例中仅提供名字).


我需要的?

1数据有问题时返回,0如果正确.


检测问题的规则

  1. 当有多个相同的名字(2个或更多)并且所有人都有相同PersonalNo而不是所有人都有StringId(如彼得)应该返回1(这是错误的)
  2. 当有多个相同的名字(2个或更多)并且有NULL(见约翰),但它们都有相同StringId它应该返回0(这是正确的,这意味着没有提供的公司之一PersonalNo)
  3. 当有多个相同的名字(2个或更多)并且所有PersonalNo都是相同的并且都是相同的StringId(参见Lisa)它应该返回0(正确)
  4. 当有多个相同的名字(2个或更多)并且有多个不同PersonalNo而且全部StringId提供它应该是这样的:我们看到这里有两个不同的人Jennifer 4805250141 PersonalNo和Jennifer一起4920225088 PersonalNo,Jennifer 和Jennifer NULL PersonalNo一样StringId4920225088 PersonalNo它应该返回0( …

sql t-sql sql-server group-by sql-server-2008

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

透视重复的列名称并获取列的所有值

交代

想象一下,我有2张桌子.FormFields其中存储列名作为值,应该是旋转的,第二个表FilledValues是用户提供的填充值FormFieldId.

问题

正如您在表格中看到的(在SAMPLE部分下面),FormFields我有重复的名称,但ID不同.我需要在连接表之后制作它,表中的所有值FilledValues都将被分配到列名,而不是Id.

我需要的更好,您将在下面的OUTPUT部分看到.

样本数据

FormFields

ID   Name  GroupId
1    col1     1
2    col2     1
3    col3     1
4    col1     2
5    col2     2
6    col3     2
Run Code Online (Sandbox Code Playgroud)

FilledValues

ID  Name  FormFieldId  GroupID
1     a       2           1
2     b       3           1
3     c       1           1
4     d       4           2
5     e       6           2
6     f       5           2
Run Code Online (Sandbox Code Playgroud)

现在输出

col1    col2    col3
 c       a        b  -- As …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server pivot sql-server-2008

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

SSRS.如何通过表达式隐藏空白/空列?

如果列中的所有行都为空(空白),我需要隐藏列.

在这种情况下col3应该隐藏,因为列中没有值.

col1 col2 col3
 v1   v4
 v2
 v3   
Run Code Online (Sandbox Code Playgroud)

我在columns Hidden属性上使用以下表达式:

=IIF(Fields!Test5.Value = "",TRUE,FALSE)

这个表达式工作,但它隐藏了每个空白(空)字段,甚至所有列都不为空.只有在根本没有值时才应该隐藏列.

reporting-services ssrs-2008 ssrs-2012 ssrs-expression

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

SQL语句中的SQL除以零错误

我是SQL的新手,可以用手.我在SELECT语句中得到以下错误:

SUM(Cast((replace(replace(replace (p.[Total Sales], '$', ''), '(','-'),  ')','')) as money)) - SUM(Cast((replace(replace(replace (p.[Total Cost], '$', ''), '(','-'),  ')','')) as money)) / SUM(Cast((replace(replace(replace (p.[Total Sales], '$', ''), '(','-'),  ')','')) as money)) as new_bal
Run Code Online (Sandbox Code Playgroud)

我知道我需要使用CASE,但我不确定应用程序.

mysql sql case divide-by-zero

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

合并SQL中相同表的列

我很难找到解决这个问题的方法,因为搜索合并SQL列或从表中添加列会产生我不想要的各种结果.用一个例子说明我就容易多了.

我有两张桌子:

表格1

ColA  ColB  ColC
0     A     AL
1     B     DZ
Run Code Online (Sandbox Code Playgroud)

表2

ColA  ColB  ColC
2     C     IS
3     D     KA
Run Code Online (Sandbox Code Playgroud)

我想合并这些表,以便基本上组合相似的列,所以我有一个具有相同结构和所有值的新表.所以输出将是:

产量

ColA  ColB  ColC
0     A     AL
1     B     DZ
2     C     IS
3     D     KA
Run Code Online (Sandbox Code Playgroud)

问题是我想从两个结构相似的表中找到这些列的不同值,所以我看不出如何使用连接,就好像我加入任何一个值,其他值将丢失,以及多个-field join似乎不起作用.

sql select

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

SQL.如何在执行sp_executesql时使用ORDER BY子句?

我需要ORDER BY在执行时使用子句sp_executesql.

我试过跟随,但没有成功:

1.

EXEC Sp_executesql @query + 'ORDER BY myChoice', N'@param1 TINYINT, @param2 NVARCHAR(60)', @param1, @param2
Run Code Online (Sandbox Code Playgroud)

2.

EXEC Sp_executesql @query ORDER BY myChoice, N'@param1 TINYINT, @param2 NVARCHAR(60)', @param1, @param2
Run Code Online (Sandbox Code Playgroud)

3.

EXEC Sp_executesql @query, N'@param1 TINYINT, @param2 NVARCHAR(60)', @param1, @param2 + 'ORDER BY myChoice'
Run Code Online (Sandbox Code Playgroud)

有你的想法吗?我的语法不正确.

sql t-sql sql-server dynamic sql-order-by

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

SQL.COUNT()函数的错误结果

我找不到问题.我有很多桌子相互连接.我需要从FormInstances表中计算表单实例(应该计数Id列),但它会撤回错误的数据.

所以我的查询看起来像:

DECLARE @dateStart  DATE        = NULL,
@dateEnd        DATE            = NULL,
@workshop       NVARCHAR(60)    = '',
@shiftNr        NVARCHAR(60)    = '',
@article        NVARCHAR(60)    = '',
@controllier    NVARCHAR(60)    = 'Name of Controlier'

SELECT COUNT(FI.Id) AS [Count of Instances]
FROM FormInstances AS FI
LEFT JOIN FormFields        AS FF
    ON FI.FormVersionId = FF.FormVersionid 
LEFT JOIN .....
WHERE
FF.Id               =   FV.FormFieldId      AND
FI.Id               =   ...
Run Code Online (Sandbox Code Playgroud)

现在输出:

Count of Instances
     414400
     414400
     414400
     414400
     384800
Run Code Online (Sandbox Code Playgroud)

输出应该是:

Count of Instances
       5
Run Code Online (Sandbox Code Playgroud)

如果我传递给SELECT子句: …

sql t-sql sql-server count sql-server-2008

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

PHP。如何传递变量和自动重定向到另一个 PHP 文件

我正在为Facebook开发应用程序。此处应检查用户打开应用程序时是否数据库中已存在用户。我想我会$_SESSION用来将用户的 ID传递给checkIfExsists.php

所以我的FacebookGetId.php看起来像:

<?php
...
$id = $user_profile['id'];
$_SESSION['id'] = $id;
?>
Run Code Online (Sandbox Code Playgroud)

所以$id现在是 ie'12345'我只是不知道如何自动重定向checkIfExsists.php到检查该 ID 是否已经存在于数据库中。

它应该是这样的:当应用程序启动时,它应该采用用户的 Id并自动重定向到checkIfExsists.php并传递该 Id。

如果用户存在checkIfExsists.php应该将用户重定向到application.php,如果不存在 - 它应该重定向到registration.php

php variables session

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

HTML.如何将复选框值传递给php?

我有表单,这里是复选框,如何将值从复选框传递给PHP?例如:如果选中复选框则传递1,如果未选中0.

我正在使用以下内容:

<input type="checkbox" name="letter" value="letter" id="letter" checked="checked">
Run Code Online (Sandbox Code Playgroud)

这是我的表格:

  <form class="form"  method="post" action="GetFbId.php">
    <h2>Registration</h2><hr/>
    <label>First Name: </label>
    <input type="text" name="first_name" id="first_name" required>

    <label>Last Name: </label>
    <input type="text" name="last_name" id="last_name" required>

    <label>City: </label>
    <input type="text" name="city" id="city" required>

    <label>Email: </label>
    <input type="text" name="email" id="email" required><br>

    Accept to get letters 
    <input type="checkbox" name="letter" value="letter" id="letter" checked="checked">

    <input type="submit" name="register" id="register" value="Register">
  </form>
Run Code Online (Sandbox Code Playgroud)

html php checkbox post get

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

T-SQL.WHERE子句中的CASE表达式使用IN运算符

如果用户输入800 @WorkShop,则应返回所有具有800个车间ID和900个车间ID的记录.

如果用户传递任何其他ID,@WorkShop它应该只返回选择@WorkShopId的记录.

我试过以下:

SELECT *
FROM Test
WHERE Workshop IN ( 
                    CASE 
                        WHEN @WorkShop = N'800' THEN N'900' AND N'800' 
                        ELSE @WorkShop 
                    END 
                    ) 
Run Code Online (Sandbox Code Playgroud)

这会返回一个错误:

Incorrect syntax near the keyword 'and'.
Run Code Online (Sandbox Code Playgroud)

所以总之如果用户传递800作为@WorkShop参数它应该返回如下内容:

Workshop IN ('800', '900')
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server case where

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