Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno SQL - prosím odladit

select StoreCards.Name, cast(documents.OrdNumber as integer),
ib_datetostring(documents.DocDate$Date,'DD.MM.YYYY '),
documents2.QUnit, documents2.ID, storeBatches.Name, StoreCards.EAN,
LogStorePositions.BarCode, StoreCards.id StoreCardId, StoreCards.Code KodSklKarty,
(select l1.storeposition_id PoziceOdkud, l2.storeposition_id PoziceKam, SC.name from logstoredocuments ld
left join logstoredocuments2 l1 on l1.parent_id=ld.id and ld.documenttype='33'
left join logstoredocuments2 l2 on l2.id=l1.masterrow_id left join storecards SC on sc.id=l1.storecard_id
where l2.storeposition_id is not null and l2.Parent_ID = '' ) from LogStoreDocuments documents left join LogStoreDocuments2 documents2 ON Documents.id=documents2.Parent_ID left join StoreCards
ON Documents2.StoreCard_ID=StoreCards.id LEFT JOIN storeBatches on documents2.StoreBatch_ID = storeBatches.ID LEFT JOIN
LogStorePositions ON LogStorePositions.ID = documents2.StorePosition_ID where Executed = 'N' and DocumentType = '33' and
documents.OrdNumber = '&A2' and PositionType = '0' order by LogStorePositions.BarCode

Hlásí:

Count of column list and variable list do not match.

Kde se tak děje prosím ? :-)

Předmět Autor Datum
Omlouvám se. Jedná se o počet záznamů vs. záznamy subselectu. Bez znalosti konkrétnich dat v db neře…
Flash_Gordon 04.02.2013 16:42
Flash_Gordon
A to je celý příkaz?
Wikan 04.02.2013 16:43
Wikan
jo
Flash_Gordon 04.02.2013 17:04
Flash_Gordon
Nebo ještě jednou a lépe, kde je chyba: select StoreCards.Name, cast(documents.OrdNumber as integer…
Flash_Gordon 04.02.2013 17:17
Flash_Gordon
Psal jsi, že to bez znalosti dat neřešitelné na dálku.
Wikan 04.02.2013 17:17
Wikan
Tohle už jo. To je upgrade :-) Hlásí to: Alias L1 conflict with alias in the same statement.
Flash_Gordon 04.02.2013 17:18
Flash_Gordon
Píšou ti to tam. Alias L1 jsi použil vícekrát.
Wikan 04.02.2013 17:20
Wikan
Kde nahradit a čím?
Flash_Gordon 04.02.2013 17:23
Flash_Gordon
Nahradit ho tam, kde jsi ho použil. A libovolným jiným nepoužitým aliasem.
Wikan 04.02.2013 17:24
Wikan
Tak už to funguje. Ale přesto mám dotaz. select StoreCards.Name, cast(documents.OrdNumber as integ…
Flash_Gordon 04.02.2013 18:27
Flash_Gordon
select StoreCards.Name, cast(documents.OrdNumber as integer), documents.DocDate$Date, l2.QUnit, l2.I…
Wikan 04.02.2013 18:33
Wikan
Děkuji Wikane. A teď se jdu konečně vyspat. poslední
Flash_Gordon 04.02.2013 20:00
Flash_Gordon

Nebo ještě jednou a lépe, kde je chyba:

select StoreCards.Name, cast(documents.OrdNumber as integer),
ib_datetostring(documents.DocDate$Date,'DD.MM.YYYY '),
documents2.QUnit, documents2.ID, storeBatches.Name, StoreCards.EAN,
LogStorePositions.BarCode, StoreCards.id StoreCardId, StoreCards.Code KodSklKarty, l1.storeposition_id PoziceOdkud, l2.storeposition_id PoziceKam
from LogStoreDocuments documents left join LogStoreDocuments2 l1 ON Documents.id=l1.Parent_ID left join StoreCards
ON l1.StoreCard_ID=StoreCards.id LEFT JOIN storeBatches on l1.StoreBatch_ID = storeBatches.ID LEFT JOIN
LogStorePositions ON LogStorePositions.ID = l1.StorePosition_ID
left join logstoredocuments2 l1 on l1.parent_id=ld.id and ld.documenttype='33'
left join logstoredocuments2 l2 on l2.id=l1.masterrow_id left join storecards on storecards.id=l1.storecard_id
where Executed = 'N' and DocumentType = '33' and
documents.OrdNumber = '2190' and PositionType = '0' order by LogStorePositions.BarCode

Tak už to funguje.

Ale přesto mám dotaz.

select StoreCards.Name, cast(documents.OrdNumber as integer),
documents.DocDate$Date,
l2.QUnit, l2.ID, storeBatches.Name, StoreCards.EAN,
LogStorePositions.BarCode, StoreCards.id StoreCardId, StoreCards.Code KodSklKarty, l1.storeposition_id PoziceOdkud, l2.storeposition_id PoziceKam
from LogStoreDocuments documents
left join logstoredocuments2 l1 on l1.parent_id=documents.id and documents.documenttype='33'
left join logstoredocuments2 l2 on l2.id=l1.masterrow_id
left join storecards on storecards.id=l1.storecard_id
LEFT JOIN storeBatches on l1.StoreBatch_ID = storeBatches.ID
LEFT JOIN LogStorePositions ON LogStorePositions.ID = l1.StorePosition_ID
where Executed = 'N' and DocumentType = '33' and
documents.OrdNumber = 2198 and PositionType = '0' and l2.storeposition_id is not null
order by LogStorePositions.BarCode

Nyní mám ve sloupečkách PoziceOdkud a PoziceKam hodnotu ID do tabulky LogStorePositions.
Jak vytáhnu zároveň v tomto dotazu i LogStorePositions.NAME v závislosti na příslušném ID, které obsahuje příslušná PoziceOdkud a PoziceKam ?

Snad jsem se vyjádřil alespoň částečně srozumitelně. Už jsem totálně unavený a nemyslí mi to. Děkuji

select StoreCards.Name, cast(documents.OrdNumber as integer),
documents.DocDate$Date,
l2.QUnit, l2.ID, storeBatches.Name, StoreCards.EAN,
LogStorePositions.BarCode, StoreCards.id StoreCardId, StoreCards.Code KodSklKarty, l1.storeposition_id PoziceOdkud, l2.storeposition_id PoziceKam, p1.name, p2.name
from LogStoreDocuments documents
left join logstoredocuments2 l1 on l1.parent_id=documents.id and documents.documenttype='33'
left join logstoredocuments2 l2 on l2.id=l1.masterrow_id
left join storecards on storecards.id=l1.storecard_id
LEFT JOIN storeBatches on l1.StoreBatch_ID = storeBatches.ID
LEFT JOIN LogStorePositions p1 ON p1.ID = l1.StorePosition_ID
LEFT JOIN LogStorePositions p2 ON p2.ID = l2.StorePosition_ID

where Executed = 'N' and DocumentType = '33' and
documents.OrdNumber = 2198 and PositionType = '0' and l2.storeposition_id is not null
order by LogStorePositions.BarCode

Zpět do poradny Odpovědět na původní otázku Nahoru