Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于显示两个不同月份的销售额的SQL查询_Sql_Visual Studio 2010_Parameters - Fatal编程技术网

用于显示两个不同月份的销售额的SQL查询

用于显示两个不同月份的销售额的SQL查询,sql,visual-studio-2010,parameters,Sql,Visual Studio 2010,Parameters,我想知道在创建显示两个不同月份(在参数中选择)的销售额的查询时,最常用的方法是什么。 我的数据库如下所示: Posting Date Company Size Sales 01/01/2011 Microsoft 1000 900 SELECT A.[Posting Date] [Posting Date 1], A.Company Company1, A.Size Size1, A.Sales Sales1, B.[Posting


我想知道在创建显示两个不同月份(在参数中选择)的销售额的查询时,最常用的方法是什么。

我的数据库如下所示:

Posting Date    Company      Size    Sales
01/01/2011      Microsoft    1000    900
SELECT A.[Posting Date] [Posting Date 1], A.Company Company1, A.Size Size1, A.Sales Sales1,
       B.[Posting Date] [Posting Date 2], B.Company Company2, B.Size Size2, B.Sales Sales2
FROM (SELECT [Posting Date], Company, Size, Sales
      FROM YourTable
      WHERE [Posting Date] = @PostingDate1) A
CROSS JOIN (SELECT [Posting Date], Company, Size, Sales
            FROM YourTable
            WHERE [Posting Date] = @PostingDate2) B
我已经有一个参数选择了“年-月”。 我想要的是有两个参数,这样我就可以在Microsoft Visual Studio中并排比较“年-月”中的销售额

因此,查询应该有两个参数,@PostingDate1和@PostingDate2

谢谢你的帮助

--更新--

试图让这更容易理解。
可从中选择的两个参数为“年-月”
因此,当参数1:2011年1月和参数2:2011年2月选择“年-月”时,结果表将如下所示(无论选择哪个月,结果将显示不同的月份)

如果2011年1月的销售额为100

2011年2月的销售额是200

我想你想做一个
交叉连接
,但我不能完全确定我是否理解你的问题。如果查询结果只有一行,那么我建议使用交叉连接,当然不是,那么最好不要使用它。应该是这样的:

Posting Date    Company      Size    Sales
01/01/2011      Microsoft    1000    900
SELECT A.[Posting Date] [Posting Date 1], A.Company Company1, A.Size Size1, A.Sales Sales1,
       B.[Posting Date] [Posting Date 2], B.Company Company2, B.Size Size2, B.Sales Sales2
FROM (SELECT [Posting Date], Company, Size, Sales
      FROM YourTable
      WHERE [Posting Date] = @PostingDate1) A
CROSS JOIN (SELECT [Posting Date], Company, Size, Sales
            FROM YourTable
            WHERE [Posting Date] = @PostingDate2) B

我想你想做一个
交叉连接
,但我不能完全确定我是否理解你的问题。如果查询结果只有一行,那么我建议使用交叉连接,当然不是,那么最好不要使用它。应该是这样的:

Posting Date    Company      Size    Sales
01/01/2011      Microsoft    1000    900
SELECT A.[Posting Date] [Posting Date 1], A.Company Company1, A.Size Size1, A.Sales Sales1,
       B.[Posting Date] [Posting Date 2], B.Company Company2, B.Size Size2, B.Sales Sales2
FROM (SELECT [Posting Date], Company, Size, Sales
      FROM YourTable
      WHERE [Posting Date] = @PostingDate1) A
CROSS JOIN (SELECT [Posting Date], Company, Size, Sales
            FROM YourTable
            WHERE [Posting Date] = @PostingDate2) B
我的答覆是:

我最终使用了“UNION”,不知道这是否更合适,但它通过使用“交叉连接”消除了冗余数据

我的答覆是:

我最终使用了“UNION”,不知道这是否更合适,但它通过使用“交叉连接”消除了冗余数据


最常用的方法是“where”子句,通常也不在字段名上使用空格(但您可以),可能类似于
where'Posting Date'>=@PostingDate1和'Posting Date',最常用的方法是“where”子句,通常也不在字段名上使用空格(但您可以),也许类似于
where'Posting Date'>=@PostingDate1和'Posting Date',交叉联接的“on”子句呢?@Luis Siquot-a
cross-join
没有使用
on
子句,它只是两个表之间的笛卡尔乘积。是的,你是对的,我总是使用逗号语法。因此,它至少需要一个where子句,比如
a.Company=B.Company
,或者在其他情况下,对于表上的多个记录,它会弄乱所有数据,那么交叉连接的“on”子句呢?@Luis Siquot-a
交叉连接
没有使用
on
子句,它只是两个表之间的笛卡尔积。是的,你是对的,我总是使用逗号语法。因此,它至少需要一个where子句,如
a.Company=B.Company
,或者在其他情况下,对于表中的多个记录,它将混乱所有数据