【问题标题】:Sql select statement fetch value based on user choicesql select语句根据用户选择取值
【发布时间】:2015-05-17 21:51:38
【问题描述】:

我正在开发应用程序,用户可以使用数据库中的 Destination 进行搜索。最高优先级是“目的地”。然后在高级搜索选项中,我必须为用户提供选择,例如

  • 性别
  • 车辆类型
  • Ac/非Ac
  • 票价

布局是这样的

要做的操作:

我必须根据用户选择从数据库生成列表视图。用户一次最多可以选择 4 个参数 bt 可以选择 1 或 2 或 3 个随机选项。现在我很困惑如何根据我的数据库架构来调用它。任何建议都会更有帮助,因为我已经坚持了几个小时。谢谢

编辑:

现在我创建了一个视图来给出我的答案。只剩下最后一个错误。根据不同的参数填充重复条目。像用户 A 一样,有 2 个 2wheeler 和 1 个 4wheeler 被显示三次。同样,拥有 2 辆车的用户会获得重复的名称条目。截图如下:

我的查询-

SELECT     TOP (100) PERCENT T.name, TM.source_latitude, TM.source_longitude, TM.trvl_day, TM.trvl_time, TM.dest_latitude, TM.dest_longitude, T.email, T.contactno, TM.trvl_source, TM.Trvl_vehicle, 
                  TM.Seats_available, T.gender, TM.user_id, TM.trvl_destination, dbo.tbl_vh.type, dbo.tbl_vh.AcNonAc, dbo.tbl_vh.kmrate FROM         dbo.tbl_reg1 AS T INNER JOIN
                  dbo.Travel_master AS TM ON T.userid = TM.user_id INNER JOIN
                  dbo.tbl_vh ON TM.user_id = dbo.tbl_vh.userid WHERE     (TM.trvl_destination LIKE '%' + @trvl_destination + '%') AND (T.gender = ISNULL(@gender, T.gender)) AND (dbo.tbl_vh.type = ISNULL(@type, dbo.tbl_vh.type)) AND 
                  (dbo.tbl_vh.kmrate = ISNULL(@kmrate, dbo.tbl_vh.kmrate)) AND (dbo.tbl_vh.AcNonAc = ISNULL(@AcNonAc, dbo.tbl_vh.AcNonAc)) ORDER BY TM.trvl_day

【问题讨论】:

  • 现在我很困惑如何根据我的数据库架构调用它 要回答这个问题,我们需要查看您的数据库架构。此外,您提供的屏幕截图似乎是一个 android 系统。 Android 是用 java 编写的,所以我不确定您是否要将其标记为 c#。最后,将移动设备直接连接到数据库绝不是一个好主意。考虑使用/制作 API 服务。
  • 我实际上是在使用安卓应用进行拼车服务。它为.net webservice 提供参数。所以我标记了c#。在写这个问题时,我没有为该解决方案编写单个 sql 查询,因此无法提供数据库详细信息。现在我得到了我的答案,只剩下一个错误。重复的实体显示在结果集中。请参阅编辑

标签: c# mysql sql .net sql-server-2008


【解决方案1】:

好的,现在我做了我想要的。在名称和日期列上进行了分组。最终查询如下。

SELECT DISTINCT TOP (100) PERCENT T.name, TM.trvl_day FROM dbo.tbl_reg1 AS T INNER JOIN
                  dbo.Travel_master AS TM ON T.userid = TM.user_id INNER JOIN
                  dbo.tbl_vh ON TM.user_id = dbo.tbl_vh.userid WHERE (TM.trvl_destination LIKE '%' + @trvl_destination + '%') AND (T.gender = ISNULL(@gender, T.gender)) AND (dbo.tbl_vh.type = ISNULL(@type, dbo.tbl_vh.type)) AND 
                  (dbo.tbl_vh.kmrate = ISNULL(@kmrate, dbo.tbl_vh.kmrate)) AND (dbo.tbl_vh.AcNonAc = ISNULL(@AcNonAc, dbo.tbl_vh.AcNonAc)) GROUP BY T.name, TM.trvl_day ORDER BY TM.trvl_day

【讨论】:

    猜你喜欢
    • 2011-08-22
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2012-02-29
    • 2021-02-05
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多