小编And*_*y M的帖子

Group By 子句导致错误

所以这里是上下文:开发 ASP.NET MVC 4 web 应用程序,我在我的数据库中有一个表ProductAllocations,它由 2 个外键组成:一个来自我的表Products另一个来自表Persons。我有另一个表,车辆,其中包含表产品的外键

我想选择按产品分组的分配及其信息(一个产品可以多次分配)。这是我的存储过程:

ALTER PROCEDURE GetAllVehicles

AS

BEGIN

    SET NOCOUNT ON 

    SELECT 

    p.FirstName,
    p.LastName,
    pa.EndDate,
    pr.PurchaseDate,
    pr.SerialNumber,
    pr.CatalogPrice,
    v.PlateNumber,
    v.FirstCirculationDate,
    V.FirstDrivingTax,
    v.UsualDrivingTax

    FROM bm_ProductAllocations AS pa

    INNER JOIN bm_Persons AS p ON pa.Id_Person = p.Id_Person
    INNER JOIN bm_Products AS pr ON pa.Id_Product = pr.Id_Product
    INNER JOIN bm_Vehicles AS v ON pr.Id_Product = v.Id_Product

    GROUP BY pa.Id_Product

END
Run Code Online (Sandbox Code Playgroud)

但是,Group By 子句生成错误:Column 'bm_Persons.FirstName' is invalid …

sql t-sql sql-server stored-procedures

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

供应商数据库包含具有100个用户定义的字符串列的表,需要查找该表中非空的所有实例

我有一个供应商数据库,用于具有100个"用户定义字符串"列的Web应用程序.它们的数据类型为varchar,长度为255.

我需要返回所有非空行,以便我可以找出每个行中存储的内容.多年来输入已无法控制,因此userdefinedstring1可以包含多行中的文本,日期,数字,空字符串或NULL.

我最初的解决方案就是

SELECT 
* 
FROM userdefinedstring table 

WHERE userdefinedstring1 IS NOT NULL 

OR userdefinedstring2 IS NOT NULL 
Run Code Online (Sandbox Code Playgroud)

再重复98次.

可能有更好的方法来做到这一点,但我还没有确定它,所以任何提示你都会受到赞赏.

sql sql-server sql-server-2008

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

NULL参数检查 - WHERE与IF

目前正在查看@return_count作为参数的存储过程.下面是两个方法的独立示例,如果NULL传入a,我可以设置它的值.

无法确定查询优化器是否会将它们视为相同,或者一种方法是否优于另一种方法.

DECLARE @return_count int
SET @return_count = null
IF @return_count is null
  BEGIN
    SELECT @return_count = 10
  END
GO  

DECLARE @return_count int
SET @return_count = null    
BEGIN
  SELECT @return_count = 10
  WHERE @return_count is null
END
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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

批处理脚本复制文件名?

我正在尝试创建一个批处理脚本:

  • 复制新文件的文件名
  • 将每个文件名粘贴到文本文件中最后一行之前的新行中

例如:我的文件夹中有名为Picture.JPG和Picture2.JPG的文件。该批处理需要复制文件名“Picture”和“Picture2”并将其粘贴到textfile.txt中,其中已经有我不想覆盖的最后一行,因此它会显示如下:

Picture
Picture2
This is the last line
Run Code Online (Sandbox Code Playgroud)

请注意,我不想复制 .JPG 扩展名。

有任何想法吗?

batch-file

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

按find_in_set(),and_then和and_then排序

这个mysql查询似乎不适合我:

select *
from myTable
order by
  find_in_set( category, "First, Second" ),
  sortby,
  title;
Run Code Online (Sandbox Code Playgroud)

显然你不能在find_in_set函数之外订购?

有没有解决的办法?我错过了什么吗?

感谢您的回复.

编辑:

这是运行的确切查询:

select
  uid,
  category,
  title,
  summary,
  image_url,
  link_url,
  link_text
from links_and_documents
where link_url != ''
  and status=1
order by
  find_in_set( category, "Test_Category_Two,Test_Category_One" ),
  sortby,
  title;
Run Code Online (Sandbox Code Playgroud)

它返回您期望的所有项目,但通过sortby命令它们并完全忽略find_in_set函数.

如果我,sortby,title不在查询的末尾,它会通过find_in_set函数对项目进行排序:

select
  uid,
  category,
  title,
  summary,
  image_url,
  link_url,
  link_text
from links_and_documents
where link_url != ''
  and status=1
order by
  find_in_set( category, "Test_Category_Two,Test_Category_One" );
Run Code Online (Sandbox Code Playgroud)

谢谢参观.

表结构:

CREATE TABLE `links_and_documents` (
  `id` int(11) NOT NULL auto_increment, …
Run Code Online (Sandbox Code Playgroud)

mysql

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

SQL:如何在SELECT查询结果中添加列?

通常我们会在SQL查询中选择字段.例如

SELECT A.id FROM Member A
Run Code Online (Sandbox Code Playgroud)

但是,如果我想将列对齐哪个元素对应于另一个选定字段呢?例如,我想从成员表中选择成员ID,以及计算成员在其他表的元组中出现的次数的COUNT

那么如何使COUNT列与选择结果一致?

sql select

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

SQL:如何使GROUP BY查询也考虑为空字段

我必须根据可能是1,2,3,4的"限定符"列将一些数据分组到类别中.问题是"空"不被视为"分组"类别.

这是我的查询:

SELECT m.id, m.name, COUNT (*) 
FROM _gialli_g2bff_distinct AS g 
INNER JOIN flag.qualifier_flags AS m ON g.qualifier = m.id 
GROUP BY m.name, m.id 
ORDER BY m.id;
Run Code Online (Sandbox Code Playgroud)

这是答案:

1 | "NOT_CONTRIBUTES_TO" | 2   
2 | "CONTRIBUTES_TO"     | 411  
3 | "COLOCALIZES_WITH"   | 200   
4 | "NOT"                | 983  

这个答案的问题是它没有考虑具有限定符字段EMPTY的所有元素.以下是我想要的答案:

1 | "NOT_CONTRIBUTES_TO" | 2
2 | "CONTRIBUTES_TO"     | 411
3 | "COLOCALIZES_WITH"   | 200
4 | "NOT"                | 983
5 |                      | 1854

我怎么能修改我的查询?

谢谢

sql group-by

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

如何发送C++和mysql动态mysql查询

使用Visual Studio,Windows 7和mysql.h库.

我想要做的是发送这样的MySQL查询:

mysql_query(conn, "SELECT pass FROM users WHERE name='Leo Tolstoy'");
Run Code Online (Sandbox Code Playgroud)

我唯一无法工作的是发送一个查询,其中名称不是如上所示的常量,而是从文本字段或其他任何内容中获取的变量.那么我应该如何处理变量而不是常量呢?

希望我明白我的问题.

c++ mysql

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

如何批量读取txt中的行.如何将每一行放在自己的变量中?

我需要在我的文本中的每一行都有自己的变量.像这样:

文本文件:

TEMPLATE: Permission, Username, Password;
Admin, Admin, Superflip;
User, Mom, Hi;
Run Code Online (Sandbox Code Playgroud)

我希望此文件中的每一行都在其OWN变量中.可能吗?

batch-file

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

如何使用组选择前两行

我有:

表格1

ID  date       amt
-------------------    
001 21/01/2012 1200
001 25/02/2012 1400
001 24/03/2012 1500
001 21/04/2012 1000
002 21/03/2012 1200
002 01/01/2012 0500
002 08/09/2012 1000
.....
Run Code Online (Sandbox Code Playgroud)

我想从DESC 中ID排序的每组中选择前两行.dateTable1

查询看起来像这样:

SELECT TOP 2 DATE, ID, AMT FROM TABLE1 GROUP BY ID, AMT --(NOT WORKING)
Run Code Online (Sandbox Code Playgroud)

预期产量:

ID  date       amt
-------------------
001 21/01/2012 1200
001 25/02/2012 1400
002 21/03/2012 1200
002 01/01/2012 0500

.....
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005 greatest-n-per-group

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