query := rds.DB.Table("business_order_info as a"). Select(`a.boid, a.contract_no, a.bid, b.bname, s.sid, s.sname, w.wid, w.wname, a.order_no, a.ctime, a.sum_num, a.sum_amt, a.pay_amt, a.proc_status, a.status, a.remark`). Joins("left join supplier_base as s on s.sid=a.sid"). Joins("left join business_base as b on b.bid=a.bid"). Joins("left join warehouse_info as w on w.wid=a.wid"). Not("a.status=?", model.Delete)
时间: 2024-04-18 14:29:49 浏览: 20
这段代码是一个查询语句,用于从数据库中获取订单信息。它使用了表别名和多个关联查询(left join),以及一些条件过滤。
查询的主要表是"business_order_info",使用别名"a"。选择的字段包括订单编号(boid)、合同号(contract_no)、商家ID(bid)、商家名称(bname)、供应商ID(sid)、供应商名称(sname)、仓库ID(wid)、仓库名称(wname)、订单号(order_no)、创建时间(ctime)、总数量(sum_num)、总金额(sum_amt)、支付金额(pay_amt)、处理状态(proc_status)、订单状态(status)和备注(remark)。
通过左连接(left join)关联了"supplier_base"表(使用别名"s")和"business_base"表(使用别名"b"),以及"warehouse_info"表(使用别名"w")。这些关联查询用于获取供应商和商家的相关信息。
最后,使用了一个条件过滤,排除了状态为删除(model.Delete)的订单。
请注意,这段代码只是一个查询语句的构建过程,并没有实际执行查询操作。执行查询的代码可能在后续的代码中。
相关问题
func AppOperateOrderList(a *decorator.ApiBase, data *appStruct.AppOperateOrdersListRequest) error { logger.AccessLogger.Info("AppOperateOrderList...") var err error var boids []int64 //where := map[string]interface{}{} resp := appStruct.OperateOrderListResponse{} //orderMains := []appStruct.OperateOrderList{} resp.ResponseCommon = a.NewSuccessResponseCommon() query := rds.DB.Table("business_order_info as a"). Select(`a.boid, a.contract_no, a.bid, b.bname, s.sid, s.sname, w.wid, w.wname, a.order_no, a.ctime, a.sum_num, a.sum_amt, a.pay_amt, a.proc_status, a.status, a.remark`). Joins("left join supplier_base as s on s.sid=a.sid"). Joins("left join business_base as b on b.bid=a.bid"). Joins("left join warehouse_info as w on w.wid=a.wid"). Not("a.status=?", model.Delete)
在这段代码中,函数AppOperateOrderList接受了两个参数`a`和`data`,类型分别为`*decorator.ApiBase`和`*appStruct.AppOperateOrdersListRequest`。这个函数的目的是操作订单列表。
首先,通过日志记录了函数的开始。
然后定义了一些变量,其中`boids`是一个int64类型的切片。接下来,创建了一个空的`OperateOrderListResponse`结构体类型的变量`resp`,并为其`ResponseCommon`字段赋值为`a.NewSuccessResponseCommon()`。
接下来,使用`rds.DB.Table`创建了一个查询对象`query`,并使用`Select`方法指定了需要查询的字段。在这里,查询了一些订单信息,并使用多个`Joins`方法进行了多表连接。
最后,使用`Not`方法排除了状态为删除的订单信息。
以上是函数`AppOperateOrderList`的部分代码。
SELECT CONVERT(varchar(100), A.CREATED, 23) ddate, (select Top 1 PubDefStr1 from M_F_RDS10 WHERE BatchNo=MATERIALLOT) pbs1, MATERIALLOT lot,a.MATERIAL_ID materialid,B.CODE materialcode,B.NAME materialname,C.CODE storagecode, C.NAME storagename,cast(a.Qty as float) QTY, (select Top 1 Z2.NAME from M_F_RDS01 Z LEFT JOIN M_F_RD01 Z1 ON Z.RD01_ID=Z1.ID LEFT JOIN M_V_VENDOR Z2 ON Z1.VENDOR_ID=Z2.ID WHERE Z.PUBDEFSTR1=MATERIALLOT and z.MATERIAL_ID=b.id and z.STORAGE_ID=c.id) vendorname, (SELECT ISNULL(SUM(ISNULL(D00.HAD,0)),0) FROM InventoryOccupancy D00 WHERE A.MATERIAL_ID=D00.MATERIAL_ID AND A.STORAGE_ID=D00.STORAGE_ID AND A.MATERIALLOT=D00.BATCHNO ) had FROM M_F_STOCKMATERIAL A LEFT JOIN M_M_MATERIAL B ON A.MATERIAL_ID=B.ID LEFT JOIN M_F_STORAGE C ON A.STORAGE_ID=C.ID
这是一条SQL查询语句,用于从多个数据表中获取一些字段的值。具体来说,它选取了以下字段:
1. A.CREATED:表示某个物料批次的创建日期时间。
2. M_F_RDS10.PubDefStr1:表示某个物料批次的一个公共定义字符串。
3. A.MATERIALLOT:表示某个物料批次的批次号。
4. A.MATERIAL_ID:表示某个物料批次所对应的物料的ID号。
5. B.CODE:表示某个物料的编码。
6. B.NAME:表示某个物料的名称。
7. C.CODE:表示某个存储区的编码。
8. C.NAME:表示某个存储区的名称。
9. A.Qty:表示某个物料批次的数量。
10. M_F_RDS01.Z2.NAME:表示某个物料批次所对应的供应商的名称。
11. InventoryOccupancy.HAD:表示某个物料在某个存储区的已有库存量。
其中,这些字段分别来自于以下数据表:
1. M_F_STOCKMATERIAL:表示物料的批次信息表。
2. M_M_MATERIAL:表示物料信息表。
3. M_F_STORAGE:表示存储区信息表。
4. M_F_RDS10:表示某个物料批次的批次信息表。
5. M_F_RDS01:表示某个物料批次所对应的入库单信息表。
6. M_V_VENDOR:表示供应商信息表。
7. InventoryOccupancy:表示某个物料在某个存储区的库存信息表。