Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
SQLite:使用SELECT而不是TEMP表格_Sqlite - Fatal编程技术网

SQLite:使用SELECT而不是TEMP表格

SQLite:使用SELECT而不是TEMP表格,sqlite,Sqlite,我有一个SQLite查询,它创建一个临时表,后跟一个SELECT语句。我想知道如何在不使用临时表的情况下编写查询,以便将其用作视图。有人能给我举一些这样做的例子吗?如果您不必在视图中使用tentable,您可以使用以下语句从选择创建视图: CREATE VIEW v_tracks AS SELECT trackid, tracks.name, albums.Title AS album, media_types.Name AS medi

我有一个SQLite查询,它创建一个临时表,后跟一个SELECT语句。我想知道如何在不使用临时表的情况下编写查询,以便将其用作视图。有人能给我举一些这样做的例子吗?

如果您不必在
视图中使用
tentable
,您可以使用以下语句从
选择创建视图:

    CREATE VIEW v_tracks 
    AS 
    SELECT
    trackid,
    tracks.name,
    albums.Title AS album,
    media_types.Name AS media,
    genres.Name AS genres
    FROM
    tracks
从现在起,您只需使用以下简单查询:

    SELECT
    *
    FROM
    v_tracks;

如果必须在视图中使用临时表,则可以使用
cte
,cte是在单个语句的执行范围内定义的临时结果集,可以在视图中使用

例如:


我希望这能有所帮助。

据我所知,视图不能使用临时表。与其制作临时表,不如制作视图是的,我已经知道了。我正在尝试创建一个视图,该视图执行的操作与我当前使用临时表执行的操作相同。所有这些都在我的原始问题中说明了。@dkj我添加了一个示例,如果您必须在视图中使用临时表。您是如何创建临时表的?显示您的代码。
    CREATE VIEW vSalesStaffQuickStats
    AS
    WITH SalesBySalesPerson (SalesPersonID, NumberOfOrders, MostRecentOrderDate)
    AS
    (
          SELECT SalesPersonID, COUNT(*), MAX(OrderDate)
          FROM Sales.SalesOrderHeader
          GROUP BY SalesPersonID
    )
    SELECT E.EmployeeID,
    EmployeeOrders = OS.NumberOfOrders,
    EmployeeLastOrderDate = OS.MostRecentOrderDate,
    E.ManagerID,
    ManagerOrders = OM.NumberOfOrders,
    ManagerLastOrderDate = OM.MostRecentOrderDate
    FROM   HumanResources.Employee AS E
           INNER JOIN SalesBySalesPerson AS OS
               ON E.EmployeeID = OS.SalesPersonID
           LEFT OUTER JOIN SalesBySalesPerson AS OM
               ON E.ManagerID = OM.SalesPersonID