Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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_Sql Server 2008 - Fatal编程技术网

Sql 两张桌子和一张桌子

Sql 两张桌子和一张桌子,sql,sql-server-2008,Sql,Sql Server 2008,帮助 我有一个问题是谁给我的,例如: TICKET CAMPO 1 DPTO 1 AREA 2 DPTO 3 AREA 但我需要用前面查询的结果表示如下表: TICKET DPTO AREA 1 SI SI 2 SI 3 SI 有人知道怎么做? 如果您能帮助我,我将感谢您您的查询可能如下所示: SELECT * FROM some_table_you_did_not_name SELECT TICKET

帮助

我有一个问题是谁给我的,例如:

TICKET CAMPO
1      DPTO
1      AREA
2      DPTO
3      AREA
但我需要用前面查询的结果表示如下表:

TICKET DPTO AREA
1      SI   SI
2      SI
3           SI
有人知道怎么做?
如果您能帮助我,我将感谢您

您的查询可能如下所示:

SELECT *
FROM some_table_you_did_not_name
SELECT
  TICKET,
  CASE WHEN SUM(CASE WHEN CAMPO='DPTO' THEN 1 ELSE 0 END) > 0 THEN 'SI' ELSE '' END AS DPTO,
  CASE WHEN SUM(CASE WHEN CAMPO='AREA' THEN 1 ELSE 0 END) > 0 THEN 'SI' ELSE '' END AS AREA
FROM some_table_you_did_not_name
GROUP BY TICKET
如果是这种情况,则可以解决如下所示的问题:

SELECT *
FROM some_table_you_did_not_name
SELECT
  TICKET,
  CASE WHEN SUM(CASE WHEN CAMPO='DPTO' THEN 1 ELSE 0 END) > 0 THEN 'SI' ELSE '' END AS DPTO,
  CASE WHEN SUM(CASE WHEN CAMPO='AREA' THEN 1 ELSE 0 END) > 0 THEN 'SI' ELSE '' END AS AREA
FROM some_table_you_did_not_name
GROUP BY TICKET

你也可以通过连接或旋转来实现这一点。

但你为什么对我们大喊大叫?你能把问题说得更清楚吗?@Valeria这个问题似乎很模糊。请不要到处使用正楷!你好像在大喊:Dhelp我们来帮助你,跟随@Valeria提示:pivot你能举一个pivotI查询的例子吗?我能,为什么?在这种简单的情况下,PIVOT实际上要复杂得多。Dok,我做错了什么,但现在可以了。谢谢你,Hogan。@Valeria-不客气,祝你好运,下次不要用帽子!