0
SELECT
worksorders.id AS 'Works Order No',
worksorders.partid AS 'Part No',
allpartmaster.partdesc AS 'Description',
worksorders.quantity AS 'Qty',
wip.wqleft AS 'Qty Rem',
worksorders.duedate AS 'Due Date',
worksorders.lateststartdate AS 'Latest Start Date',
worksorders.kitstatus AS 'Kit Status',
wip.wopnumber AS 'Op No',
wip.wmachine AS 'Work Centre',
wip.wdesc AS 'WC Description',
wip.wstate as 'Op State',
(SELECT wstate FROM wip WHERE wip.wona = worksorders.id and wip.wopnumber = (wip.wopnumber - 10)) as 'Prev Op State'
FROM efacdb.dbo.allpartmaster allpartmaster, efacdb.dbo.wip wip, efacdb.dbo.worksorders worksorders
WHERE worksorders.id = wip.wona AND allpartmaster.partnum = worksorders.partid AND ((worksorders.status = 'ACTIVE') AND (wip.wstate = 'NS'))
AND wip.wmachine = 'POLISH'
ORDER BY worksorders.lateststartdate ASC
我在查询时遇到问题,我不确定它是否有可能。我正在返回按10步骤编号的操作,我需要返回以前操作的状态。这里的重点线:SQL子查询其中列=列-10
(SELECT wstate FROM wip WHERE wip.wona = worksorders.id and wip.wopnumber = (wip.wopnumber - 10)) as 'Prev Op State'
我想借此从父SELECT查询wopnumber,取10关闭并返回该行的wstate列。
这可能吗?
测试,我认为样本数据和预期的结果将真正帮助解释你想要做什么。 –
您应该在子查询中使用不同的别名,以便您可以引用外部表。您还应该使用ANSI连接 - 自1992年以来,它们一直处于SQL标准之中,是*世纪*之前的四分之一。 –
@Damien_The_Unbeliever旧学校加入显然有一定的怀旧情绪,有点像聆听经典摇滚:-) –