Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Microsoft SQL Server / MSDE _ Wyszukiwanie w liście tabel

Napisany przez: di@blo 10.12.2014, 18:30:02

Witam

Mam tabelę główną:

| ID | Miesiac | NazwaTabeli |

W tej tabeli mam wpisy tworzonych co miesiąc tabel oraz tabele z raportami miesięcznymi

| ID | D1 | D2 | D3 |

Chcę przeszukać wszystkie tabele (zawarte w tabeli głównej, w kolumnie NazwaTabeli) i zwrócić wszystkie dane. Próbowałem tak:

  1. "Select * From (Select NazwaTabeli From TabelaGlowna) T"


ale zwraca mi dane z kolumny NazwaTabeli z tabeli głownej.

W jaki sposób można zrealizować takie zapytanie? Byłbym wdzięczny za wszelkie wskazówki.

Napisany przez: mmmmmmm 10.12.2014, 23:04:41

Prepared Statements
A moim skromnym zdaniem masz zdecydowanie złą strukturę danych

Napisany przez: di@blo 11.12.2014, 22:40:27

Dzięki za pomoc, ale próbuje próbuje i coś mi nie idzie.
Rozumiem, że powinienem zrobić zapytanie do głównej tabeli a później podstawić wyniki pod drugie zapytanie. Na razie stworzyłem coś takiego.

  1. SqlConn.Open()
  2.  
  3. Dim bCmd AS SqlCommand = New SqlCommand("", SqlConn)
  4. bCmd.CommandText = "Select TName From GodzHala1"
  5.  
  6. Dim R AS SqlDataReader = bCmd.ExecuteReader
  7. Dim tab = New List(Of String)
  8.  
  9. While R.READ()
  10. tab.ADD(R("TName").ToString)
  11. End While
  12. R.Close()
  13.  
  14. Dim command AS SqlCommand = New SqlCommand("", SqlConn)
  15. command.CommandText = "Select * From @tab"
  16.  
  17. command.Parameters.AddWithValue("@tab", String.JOIN("|", tab))
  18.  
  19. Dim rowsAffected AS Integer = command.ExecuteNonQuery()
  20. MsgBox("Rows: {0}", rowsAffected)
  21.  
  22. SqlConn.Close()


Jakieś jeszcze wskazówki?


Co do struktury danych to wygląda to tak:
- mam tabele ze zleceniami (docelowo kilka tysięcy), w których mam listę zleceń wraz z dodatkowymi danymi,
- nad każdym zleceniem może pracować kilka działów firmy,
- każdy dział musi zliczań dzienny nakład pracy na każde zlecenie,
- muszę znać miesięczną oraz sumaryczną liczbę godzin na każde zlecenie,

Na razie wymyśliłem dwa sposoby:
1) tabele główne dla każdego działu z listami tabel, które zawierające raporty miesięczne, każda tabela z raportami ma kolumny z dniami miesiąca, a rekordami byłyby zlecenia,
2) tabele dla każdego zlecenia, gdzie kolumnami byłyby nazwy działów, a rekordy to nazwy dni,

Drugie rozwiązanie jest prostsze, ale pierwsze łatwiej prezentuje miesięczny raport godzin z poszczególnych dni dla każdego zlecenia.
Chyba, że jest jeszcze jakieś inne dobre rozwiązanie, które mi nie przyszło do głowy.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)