Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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_Pervasive - Fatal编程技术网

需要结合SQL查询的帮助吗

需要结合SQL查询的帮助吗,sql,pervasive,Sql,Pervasive,= 我该怎么做?我尝试将第二个查询作为嵌套的select放在顶部,但无法使其工作。两个结果集共享相同的col1值,它们是唯一的,所以我想它们需要在这一点上连接起来?最后,person是每次运行查询时查询都会不同的地方。您可以尝试在col1上使用内部联接 col1 col4 person cost 001 abc Zeus 23462 002 abc

=


我该怎么做?我尝试将第二个查询作为嵌套的select放在顶部,但无法使其工作。两个结果集共享相同的
col1
值,它们是唯一的,所以我想它们需要在这一点上连接起来?最后,
person
是每次运行查询时查询都会不同的地方。

您可以尝试在col1上使用内部联接

col1          col4          person          cost
001           abc           Zeus            23462
002           abc           Zeus            25215
003           xyz           Zeus            92381
004           xyz           Zeus            29171
选择tableA.col1、tableA.col2、左侧(tableB.col3、4)作为人员、tableC.col1、SUM(tableC.col2)作为成本
从表格
左连接打开的tableB(tableB.col1=tableA.col1和tableB.col2=tableA.col2)
内部联接表C ON(表A.col1=表C.col1)
其中tableA.col3='000000'
表A.col4“
人=‘宙斯’
按表A.col4、人、表C.col1、表C.col3分组;
按表A.col1、表A.col4 ASC排序;

您可以尝试在col1上使用内部联接

col1          col4          person          cost
001           abc           Zeus            23462
002           abc           Zeus            25215
003           xyz           Zeus            92381
004           xyz           Zeus            29171
选择tableA.col1、tableA.col2、左侧(tableB.col3、4)作为人员、tableC.col1、SUM(tableC.col2)作为成本
从表格
左连接打开的tableB(tableB.col1=tableA.col1和tableB.col2=tableA.col2)
内部联接表C ON(表A.col1=表C.col1)
其中tableA.col3='000000'
表A.col4“
人=‘宙斯’
按表A.col4、人、表C.col1、表C.col3分组;
按表A.col1、表A.col4 ASC排序;

如果不希望组合查询,可以为查询设置别名,如此查询

SELECT tableA.col1, tableA.col2, LEFT(tableB.col3, 4) as person, tableC.col1, SUM(tableC.col2) as cost
FROM tableA
LEFT JOIN tableB ON ( tableB.col1 = tableA.col1 AND tableB.col2 = tableA.col2)
INNER JOIN tableC ON ( tableA.col1 = tableC.col1)
WHERE tableA.col3 = '000000'
AND tableA.col4 <> ''
AND person = 'Zeus'
GROUP BY tableA.col4, person, tableC.col1, tableC.col3;
ORDER BY tableA.col1, tableA.col4 ASC;
您的选择结果在表1中,因此您可以为问题中的其他选择设置别名

select * from example ... as table1;
现在,您可以在问题的表1和表中使用join或其他命令

SELECT
    tableC.col1,
    SUM(tableC.col2) as cost

FROM tableC

WHERE tableC.col3 = 'L'

GROUP BY tableC.col1, tableC.col3 as table2

如果不希望组合查询,可以像此查询一样为查询设置别名

SELECT tableA.col1, tableA.col2, LEFT(tableB.col3, 4) as person, tableC.col1, SUM(tableC.col2) as cost
FROM tableA
LEFT JOIN tableB ON ( tableB.col1 = tableA.col1 AND tableB.col2 = tableA.col2)
INNER JOIN tableC ON ( tableA.col1 = tableC.col1)
WHERE tableA.col3 = '000000'
AND tableA.col4 <> ''
AND person = 'Zeus'
GROUP BY tableA.col4, person, tableC.col1, tableC.col3;
ORDER BY tableA.col1, tableA.col4 ASC;
您的选择结果在表1中,因此您可以为问题中的其他选择设置别名

select * from example ... as table1;
现在,您可以在问题的表1和表中使用join或其他命令

SELECT
    tableC.col1,
    SUM(tableC.col2) as cost

FROM tableC

WHERE tableC.col3 = 'L'

GROUP BY tableC.col1, tableC.col3 as table2

我从来不知道你可以在查询中设置别名!在不久的将来,这将非常有帮助。非常感谢。我从来不知道你可以在查询中设置别名!在不久的将来,这将非常有帮助。多谢各位。